质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
#include<stdio.h>
int main()
{
int i,j,a;
a=0;
printf("请输入1个整数\n");
scanf("%d",&j);
for(i=2;i<=j/2;i++)
{
if(j%i==0);
{
a++;
}
}
if(a==0)
{
printf("%d是素数",j);
}else{
printf("%d不是素数",j);
}
return 0;
}
运行结果
也可以用break语句执行,使代码更简约。
- N-S图如下
- 如果n能被2-(n-1)的一个整数整除,执行break语句,流程跳到循环体之外。算法的关键是看结束循环时i是否小于n,如果n能被2-(n-1)的一个整数整除,则是break语句导致循环提前结束,此时i<n,显然不是素数。如果循环变量i一直加到n,“i<n”这个条件不会成立,结束循环,则n是素数。
- 代码如下
#include<stdio.h>
int main()
{
int n,i;
printf("请输入大于3的数字\n");
scanf("%d",&n);
for(i=2;i<n;i++)
if(n/i==0)break;
if(i<n)printf("%d不是一个素数",n);
else printf("%d是一个素数",n);
return 0;
}
运行结果