请帮忙!为什么C中的Prime数字程序不起作用?
#include<stdio.h>
#include<conio.h>
int main()
{
int n,i;
printf("enter the number");
scanf("%d",&n);
for(i=2;i<=n-1;i++)
{
if(n%i==0)
printf("%d is not a prime number",n);
else
printf("%d is a prime number",n);
}
getch();
}
请回答 - 为什么这个程序不起作用?
答案 0 :(得分:2)
使用标志检查数字是否可以整除?
#include<stdio.h>
#include<conio.h>
int main()
{
int n,i,flag=0;
printf("enter the number");
scanf("%d",&n);
for(i=2;i<=n-1;i++)
{
if(n%i==0)
{
flag = 1;
break;
}
}
if ( flag == 1 )
{
printf("%d is not a prime number",n);
}
else
{
printf("%d is a prime number",n);
}
getch();
}
此外,for循环:for(i=2;i<=n-1;i++)
迭代超过要求。您应该设置i <= sqrt(n)
。