記 利用函式解決素數問題

2021-09-28 23:15:39 字數 740 閱讀 3673

描述

輸入m,輸出m到2m之間(包含m和2m)最大的素數減去最小的素數的結果。

輸入乙個正整數n,表示測試案例的數量。

每組案例中有乙個正整數m。

輸出針對每組案例,輸出乙個整數,表示m到2m之間(包含m和2m)最大的素數減去最小的素數的結果。每組案例輸出完都要換行。

樣例輸入

2樣例輸出

0hint

1到2之間最大的素數是2,最小的素數是2,2-2=0

7到14之間最大的素數是13,最小的素數是7,13-7=6

#include

#include

using

namespace std;

bool

isprime

(int a)

//固定函式:判斷乙個數是否為素數

for(

int i =

2; i <=

sqrt

(a); i++)}

return

true;}

intmain()

}for

(int i =

2* m; i >= m; i--)}

cout << max-min<< endl;

}return0;

}

總結:判斷是否為素數時可用乙個函式模板來偷懶;

main函式中判斷條件是否為真時,記得寫小括號!即isprime(i)中的i一定不能漏!

回溯解決素數環問題

素數環是乙個電腦程式問題,指的是將從1到n這n個整數圍成乙個圓環,若其中任意2個相鄰的數字相加,結果均為素數 我們可以根據問題建成乙個根節點為1深度為n的n叉數。通過對解空間的進行回溯剪枝 條件就是相鄰兩元素和為素數以及是否重複使用 就可以得到所有解。public class primering p...

回溯演算法解決素數環問題

素數環 從1到20這20個數擺成乙個環,要求相鄰的兩個數的和是乙個素數 演算法流程 1 資料初始化 2 遞迴填數 判斷第i個數填入是否合法 a 如果合法 填數 判斷是否到達目標 20個已填完 是,列印結果 不是,遞迴填下乙個 剪枝條件 b 如果不合法 選擇下一種可能 include include ...

利用棧解決迷宮問題

迷宮問題 如圖所示 從左上角出發,然後從下面出來。利用檔案讀寫的方式,讀取迷宮,然後利用棧,進行搜尋是否能夠找到出口,上下左右四個方向進行判斷,如果找不到,就回溯。pragma once pragma once include include define n 10 struct position ...