#include
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;nif(i%n==0)
break; /*余数为0时终止循环,关键是这里.朋友*/
if(nprintf("not prime\n");
else
printf("prime\n");
getch();
}
...for只循环了一次,if else 里的两个 break 跳出 for循环...
故楼主的程序但凡2能整除的输出not prime,否则输出prime...
所以出现"输入9、15、51等数时运行出现“prime”(素数)"
程序本身就是错的,修改如下:
void main()
{
int i,n;
int flag = 0;
scanf("%d",&i);
for(n=2;n{
if(i%n==0)
{
flag = 1;
break;
}
}
if (flag)
printf("no primer\n");
else
printf("primer\n");
}
#include
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n{
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
} //for 循环要加{ ……}
}
当然了你这个程序有问题,无论你输入哪个数,它都只循环一次就跳出整个for循环了!因为你两个小程序块里都加了break!