素數的判斷

2021-10-11 03:26:07 字數 1013 閱讀 1828

定義:不為1,只能被1和自己整除的數字

判斷:小於等於1的不是

判斷:大於1的,判斷是否可以被數整除,可以跳出迴圈

判斷:被整除的數是否是自己本身 

根據素數的定義思考。素數是大於1的自然數,除了1和自身外,其他數都不是它的因子。

那我們就可以用乙個迴圈,從2開始遍歷到這個數減去1,如果這個數都不能被整除,那麼這個數就是素數。

也就是說:

給定乙個數 n , i 從 2 開始取值,直到 n - 1(取整數),如果 n % i != 0 , n 就是素數

#include int main()

if (j < n)

printf("no");

else

printf("yes");

}

return 0;

} //判斷素數:不為1,只能被1和自己整除的數字

//小於等於1的不是

//大於1的,判斷是否可以被數整除,可以跳出迴圈

//判斷被整除的數是否是自己本身

進一步思考,有必要遍歷到 n - 1 嗎?

除了1以外,任何合數最小的因子就是2,那最大的因子就是 n/2

那我們就遍歷到 n/2就足夠了

int isprime(int n)

return 1; }}

int main()

再進一步,其實迴圈到n開平方處即可。

#include #include int isprime(int target) 

for (i = 2; i <= (int)sqrt(target); i++)

return 1;

}int main()

sqrt()函式,用於計算平方根

函式原型: 在vc6.0中的 math.h標頭檔案的函式原型為double sqrt(double);

所以經常伴隨需要強制型別轉換

素數的判斷

所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2 16的任一整數整除。因此判斷乙個整數m是否是素數,只需把m被2 m 1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數 另外判斷方法還可以簡化。m不必唄2 m 1之間的每乙個整數去除,只需被2 m之間...

素數的判斷

素數是啥?知道了這個就能夠知道如何判斷乙個數是否為素數了。這篇博文裡詳細說明了素數是啥 素數 如果乙個整數a 1且只能被平凡約數1和它自身所整除,則這個數是素數。也就是說素數是恰好有2個約數的整數,即1和它本身。因為n的約數都不超過n,所以只要檢查2 n 1的所有整數是否整除n就能判斷n是不是素數了...

素數的判斷

素數 首先,儲存最小素數2,然後,從3開始,在奇數中尋找素數。用不大於該奇數一半的所有奇數去整除它,如果都除不盡,該奇數是素數。曾稱質數。乙個大於1的正整數,如果除了1和它本身以外,不能被其他正整數整除,就叫素數。如2,3,5,7,11,13,17 8 2042 0sample output 8 3...