描述
輸入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 ...