思路:用循环语句一个个试,但只需要试到X的平方根即可(后续等语法和算法提升一下,再试试其他筛法)。
难点:注意设置break跳出循环,避免重复计算。
方法如下:
#include <stdio.h>
#include <math.h>
int main() {
int n;
int x;
int prime = 1;//定义prime,如果未进入循环一次,则直接为素数
printf("请输入要判断的数字\n");
scanf("%d", &x);
//从2开始逐个试
for (n = 2; n < sqrt(x); n++) {
if (x % n == 0) {//如果余数为0,表示除得尽
prime = 0;//那么重新定义prime为0
break;//第一次得出结果后,直接跳出循环
}
}
if (prime == 1) {
printf("是素数\n", x);
} else {
printf("不是素数\n", x);//prime=0则为和数
}
return 0;
}