能被1和自己整除的自然数(大于0的数)为素数
但是,在一些前提下:
1.小于等于1的数字不是素数
2.偶数中只有2是素数
引用上面的条件就可以开始写代码了
#include<stdio.h>
// 判断是否为素数的函数(n为数值范围)
void isprime(int n){
int i,j;
for(i=2; i<=n; i++){ // 外层循环:遍历2到n的所有数
for(j=2; j<=i; j++){ // 内层循环:检查i是否能被2到i之间的数整除
if(i % j == 0) {
break; // 如果被整除,立即终止内层循环
}
}
if(i == j) { // 关键判断:i是否只能被自身整除,i=2的情况也考虑
printf("%d\n", i); // 如果是,则为素数
}
}
}
int main() {
isprime(10); //调用函数传入10
return 0;
}
当i=2时,内层循环执行j=2,触发break,此时j=2,条件成立,打印2。正确。
但当i=3时,j循环到3,触发break,条件成立,打印3。正确。
i=4,j=2时break,条件不成立,不打印。正确。
i=5,j=5,触发break,条件成立,正确。
i=6,j=2时break,条件不成立。
i=7,j=7,条件成立,打印。
i=8,j=2,break,不打印。
i=9,j=3,break,不打印。
i=10,j=2,break,不打印。
输出2,3,5,7
素数定义及代码验证示例
198

被折叠的 条评论
为什么被折叠?



