思路參見:
孿生素數: 所謂孿生素數指的是間隔為 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和3的最小公倍數即6的倍數!
n≥6且n-1和n+1為孿生素數,那麼n一定是6的倍數
證明:
∵ n-1和n+1是素數 ┈┈┈┈┈ ①
∴ n-1和n+1是奇數
∴ n是偶數,即n是2的倍數 ┈┈┈┈┈ ②
假設n不是3的倍數,得:
n=3x+1 或 n=3x+2,
如果n=3x+1,則n-1=3x,與①違背,故n≠3x+1;
如果n=3x+2,則n+1=3(x+1),與①違背,故n≠3x+2;
∴假設不成立,即n是3的倍數,又有②得結論:
n是6的倍數。
由上面的規律可以推出下面結論:
若x≧1且n=6x-1或n=6x+1不是素數,那麼n一定不是2和3的倍數。
證明:
∵n=6x-1或n=6x+1,即n=2(3x)-1或n=2(3x)+1或n=3(2x)-1或n=3(2x)+1。
∴n一定不是2和3的倍數。
素數出現規律:
當n≧5時,如果n為素數,那麼n mod 6 = 1 或 n mod 6 = 5,即n一定出現在6x(x≥1)兩側。
證明:
當x≥1時,有如下表示方法:
6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1
不在6x兩側的數為6x+2,6x+3,6x+4,即2(3x+1),3(2x+1),2(3x+2),它們一定不是素數,所以素數一定出現在6x的兩側。
判斷**如下:
bool isprime(int num)
僅代表個人觀點,歡迎交流**,勿噴~~~
判斷素數的方法(孿生素數)
素數 質數prime number 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數,素數有無窮多個。先來一張 2 200素數分布表 從2到 n整除判斷 public static boolean isprime int num for int i 2 i sqrt num i retur...
python100以內孿生素數 孿生素數
問題描述 若兩個素數之差為2,則這兩個素數就是孿生素數。編寫程式找出1 100之間的所有孿生素數。我的 import math def prime n count 0 for i in range 2,int math.sqrt n 1 if n i 0 count 1 i 1 if count 1...
孿生素數問題
描述 寫乙個程式,找出給出素數範圍內的所有孿生素數的組數。一般來說,孿生素數就是指兩個素數距離為2,近的不能再近的相鄰素數。有些童鞋一看到題就開始寫程式,不仔細看題,咱們為了遏制一下讀題不認真仔細的童鞋,規定,兩個素數相鄰為1的也成為孿生素數。輸入 第一行給出n 0輸出 每組測試資料輸出佔一行,該行...