素数等于质数
即:只能被1和它本身整除
方法一:使用嵌套 for 循环
int i = 0;
for (i = 100; i <= 200; i++) {
int j = 0;
for (j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i) {
printf("%d ", i);
}
}
方法二:多个 count 变量计算素数个数;用 flag 变量判断是否是素数。
int i = 0;
int count = 0;
for (i = 100; i < 200; i++) {
int flag = 0;
int j = 0;
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
count++;
printf("%d ", i);
}
}
printf("\n%d\n", count);
方法三:使用平方函数,减小循环范围,提高效率
m = a * b; a 和 b 中至少有一个数字是 <=(小于等于) 开平方的 m。 例如:16 = 28 = 44 2 和 8 至少有一个数字是 小于等于 开平方的 m。 这样就可以让第二个 for 循环减小范围,提高效率。
int i = 0;
int count = 0;
for (i = 100; i <= 200; i++) {
int j = 0;
int flag = 1;
for (j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag) {
count++;
printf("%d ", i);
}
}
printf("\n%d ", count);
|