C語言基礎(chǔ):如何判斷素數(shù)(質(zhì)數(shù))與合數(shù)
文章目錄
C語言基礎(chǔ):如何判斷素數(shù)(質(zhì)數(shù))與合數(shù)1. 素數(shù)與合數(shù)2. 正因數(shù)與公約數(shù)3. 代碼示例
1. 素數(shù)與合數(shù)
素數(shù)又叫質(zhì)數(shù)(prime number),有無限個。素數(shù)定義為在大于1的自然數(shù)中,除了1和它本身兩個正因數(shù)以外不再有其他因數(shù)。如:2,3,5,7,11等皆為素數(shù)。比1大而且不是素數(shù)的數(shù)稱為合數(shù)(composite number)。如:4,6,8,9,10等皆為合數(shù)。數(shù)字0和1既非素數(shù)也非合數(shù)。
2. 正因數(shù)與公約數(shù)
正因數(shù),也稱為正約數(shù),指的是一個整數(shù)中大于0的因數(shù)。如:24的正因數(shù)有1,2,3,4,6,8,12,24。任何整數(shù)的最小正因數(shù)都是1。公因數(shù),也稱為公約數(shù)。它是指能同時整除幾個整數(shù)的數(shù)。如:24與16的公約數(shù)有1,2,4,8,以及它們的最大公約數(shù)為8。對任意的若干個正整數(shù),1總是它們的公因數(shù)。
注:最大公約數(shù)請見此文章C語言基礎(chǔ):求兩個數(shù)的最大公約數(shù)與最小公倍數(shù)
3. 代碼示例
例1: 輸出一個數(shù)判斷是否為素數(shù)。
int main(int argc, char* argv[])
{
int x;
printf("please input a number!\n");
scanf("%d",&x);
if(x
for(int i=2;i
printf("This is heshu\n");//合數(shù),非素數(shù)
}
else{
printf("This is sushu\n");//素數(shù)
}
}
return 0;
}
測試用例: 97 運行結(jié)果: This is sushu
例2: 輸出數(shù)字1到100之間的素數(shù)。
void main(){
for(int x=2;x |