篩選法:
先把n個自然數按次序排列起來。
* 1不是質數,也不是合數,要划去。
* 第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。
* 2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。
* 3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。
* 這樣一直做下去,就會把不超過n的全部合數都篩掉,留下的就是不超過n的全部質數。
/*
poj2262 - 素數判斷
題目大意: 給定乙個數n,把它分解成兩個素數的和,在這些分解中,這兩個素數差要最大。
6 <= n < 1000000
解題思路:先判斷素數,然後列舉
解題心得:學會篩選法判斷素數
*/#include
using
namespace
std;
const
int maxn = 1000002;
int a[maxn];
//int isprime(int x)
//// return 1;
//}/*
篩選法對素數打表,o(n)
*/void oddarray()
}}int main()
return
0;}
利用孿生素數判斷素數
思路參見 孿生素數 所謂孿生素數指的是間隔為 2 的相鄰素數。大於6以上的孿生素數,p 1和p 1為素數,則p 1和p 1一定為奇數,則p一定為偶數,即p為2的倍數 p 1 p p 1為連續的自然數,他們一定有乙個是3的倍數,p 1和p 1為素數,則他們不為3的倍數,即p也為3的倍數 所以p一定為2...
判斷素數 Excel公式練習53 判斷素數
excelperfect 本次的練習是 在列a中給定乙個整數值,例如單元格a2,並且2 a2 100,要在列b中 例如單元格b2 使用公式進行判斷 如果列a中的值是素數,則返回 素數 如下圖1所示。圖1素數也稱質數,是指在大於1的自然數中,除了1和它本身外不再有其他因數的自然數。先不看答案,自已動手...
素數的判斷
所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。因此判斷乙個整數m是否是素數,只需把m被2 m 1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數 另外判斷方法還可以簡化。m不必唄2 m 1之間的每乙個整數去除,只需被2 m之間...