大神们,下面这个函数判断素数,为什么输入2时不对,没想出来
c语言吧
全部回复
仅看楼主
level 10
逸宇星 楼主
#include <stdio.h>
int fun(int n)
{
int i,k;
for(i=2,k=0;i<n;i++)
{
k=n%i;
if(k==0)break;
}
return k;
}
int main()
{
int a;
scanf("%d",&a);
if(fun(a)) printf("Prime\n");
else printf("Non Prime\n");
return 0; }
2013年05月25日 01点05分 1
level 3
#include <stdio.h>int fun(int n){int i,k;for(i=1;i<n;i++){if(n%i==0)break;}return k;}int main(){int a;scanf("%d",&a);if(fun(a)) printf("Prime\n");else printf("Not Prime\n");return 0; }
2013年05月25日 02点05分 4
level 3
#include <stdio.h>
int fun(int n)
{int i,k;for(i=1;i<n;i++)
{if(n%i==0)break;}return k;}
int main(){int a;scanf("%d",&a);
if(fun(a)) printf("Prime\n");
else printf("Not Prime\n");return 0; }
2013年05月25日 02点05分 5
谢了,这个是对的了
2013年05月25日 03点05分
2是对了,21又错了,21不是素数啊
2013年05月25日 03点05分
level 5
你程序对的吧,我运行了一遍,2是non prime
2013年05月25日 02点05分 6
但是2应该是prime
2013年05月25日 03点05分
回复 逸宇星 :抱歉没注意,后来看了一下:开始应该k=1;因为2没有跑for循环,所以直接输出return k;
2013年05月25日 13点05分
level 7
哥们,2是个特例,程序判断有误
2013年05月25日 04点05分 7
1