判断一个数是否为素数的方法是判断它是否只能被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,说明待判断数是素数,将其输出。