判斷一個數是否為素數的方法是判斷它是否只能被1和自身整除,即沒有其他因子。以下是一種判斷100以內素數的方法:
#include <stdio.h>
int main() {
int i, j, isPrime;
printf("2 "); // 2是素數
for (i = 3; i <= 100; i += 2) { // 只判斷奇數
isPrime = 1; // 假設i是素數
for (j = 3; j * j <= i; j += 2) { // 只判斷小于等于i的奇數
if (i % j == 0) {
isPrime = 0; // i能被j整除,說明i不是素數
break;
}
}
if (isPrime) {
printf("%d ", i);
}
}
return 0;
}
上述代碼使用了兩個循環嵌套,外層循環控制待判斷的數范圍,內層循環用于判斷每個數是否為素數。首先,輸出2作為特殊情況。然后外層循環從3開始遞增,每次遞增2,這樣只判斷奇數。內層循環從3開始遞增,每次遞增2,只判斷小于等于待判斷數的奇數。如果待判斷數能被內層循環中的某個奇數整除,說明它不是素數,將isPrime
置為0,并跳出內層循環。如果內層循環結束時isPrime
仍為1,說明待判斷數是素數,將其輸出。