C 求質數(素數)判斷1000以內的素數

2021-08-29 03:50:58 字數 565 閱讀 5035

定義:素數只能被1和它自身整除的數,1不是素數 (2是最小的素數)

思路: 求某個數n是不是素數?用for迴圈讓n依次除以 從2~(n-1)之間的數,如果能被整除,則n不是素數,反之則是。

bool flag;//宣告乙個bool值用來判斷是否是素數

for (int i = 2; i <= 1000; i++)//迴圈 1000以內的數

}if (flag)

}console.readkey();

執行結果

提公升:1.除了2,其他偶數都不是素數,可以加乙個判斷語句,排除偶數。

2.乙個整數n是無法被大於n/2數整除的,只要判斷前面的2-n/2之間範圍,節約運算次數。

3.在提公升一步不需要從2判斷到n-1,乙個數進行因數分解,那麼分解時得到的兩個數一定是乙個小於等於sqrt(n)【n的開方】,乙個大於等於sqrt(n),據此,上述**中並不需要遍歷到(n-1),遍歷到sqrt(n)即可,

求1000以內的素數 ghpython 素數

今天咱們繼續來看老潘微博裡的乙個python小案例,求1 200以內的所有素數,所謂素數,就是咱高中裡說的質數,只能被數字1和其自身整除 且大於1的自然數。那麼就只需要遍歷1 200以內的每乙個數,然後判斷其是否有被整除的數,需要注意的是,如果乙個數被其他兩個數整除,那必然是一大一小,所有只需遍歷到...

python 求100以內素數 質數和

import math def is prime n 簡化問題,先利用函式判斷是否為質數 if n 1 是賦值,才是判斷,切記切記 return false for i in range 2,int math.sqrt n 1 質數判斷條件,注意 1 if n i 0 return false re...

篩選法求n以內素數(質數)

設定乙個標誌陣列isprime,isprime i 的值是1就表示i是素數。開始陣列元素值全部為1劃掉k的倍數,就是把isprime 2 k isprime 3 k 置成0最後檢查isprime陣列,輸出isprime i 為1的那些i include include using namespace...