素數的定義:乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除的素數叫素數。
單獨判讀輸入的數n是不是1和2,再從2到n-1判斷是否存在能被2整除的數,如果有就是素數,沒有就不是素數。
核心**如下:
#include
func
(int n)
return1;
}}intmain()
其中優化的乙個方法就是對於乙個正整數n,如果用二到根號n之間的整數去除,均無法整除,則為素數,否則就不是素數。
此方法就是將上面的for迴圈稍微改變一下,再加上#include。
改變如下:
for
(int i=
2;i<
sqrt
(n);i++
)return1;
}
例如找2-200內的所有素數:
1.首先先定義乙個陣列a,將2-200放入a[2]~a[200]中去。
2.第乙個數是素數,將後面2的整數倍的數全部篩去,篩去的置0。
3找出下乙個非0的數字a[i],它就是新的素數i。
4.篩去i的整數倍,置0。
5.若i小於200的平方根,則繼續尋找下乙個非0數。否則輸出2~200之間的素數。
#include
#include
intmain()
}for
(i=2
;i<
200;i++
)//輸出
if(a[i]
)printf
("%5d"
,i);
}
5以內只有1,2,3,5是素數,我們將在100以內的素數列出,發現它們都在6的倍數的左右。
例:(5,6,7),(11,12,13),(17,18,19)(23,24,**25**),(29,30,31),(**35**,36,37),(41,42,43),(47,48,49),
我們將會發下在6的倍數的左右兩邊除了5 的倍數以外的數為素數。
而在100以內大於5的數字內除去6的倍數的左右兩邊的數字後,剩下的數字為8,9,10,14,15,16,20,21,22,26,27,28.......以此類推,我們不難發現這些數字均為2或3的倍數。
綜上所述,我們要篩去2,3,5的倍數,然後6左右的數便為素數。
**如下:
#include
#include
intfunc
(int x)
}int
main()
第一次寫,如果有什麼不對請大佬指出,謝謝。 判斷素數的方法(孿生素數)
素數 質數prime number 定義為在大於1的自然數中,除了1和它本身以外不再有其他因數,素數有無窮多個。先來一張 2 200素數分布表 從2到 n整除判斷 public static boolean isprime int num for int i 2 i sqrt num i retur...
python判斷素數的方法簡書 判斷素數
素數的定義 素數 又稱質數。是大於1自然數中的除了自身和1以外不能別其他數整除的數字。第一種方法 利用這個素數的定義,我們可以得出第一種判斷素數的方法 int isprime1 int n int i 0 2是素數 if n 3 return n 1 當n不能被除了1和n自身整除的數外的數是素數 f...
素數的快速判斷方法
大於等於5的素數與6的倍數相鄰 所有自然數可以用集合a 表示,其中n 0,顯然,子集b 內的元素都不是素數,所以只有6n 1和6n 5可能是素數,素數一定可以用6n 1和6n 5其中的乙個形式表示,即大於等於5的素數與6的倍數相鄰 上面說到大於或等於5的素數一定可以用6n 1或者6n 5來表示,在判...