[求助]找素数的代码无法执行,麻烦大家检查
麻烦大家帮忙检查,指出我的错误 谢谢了
#include<stdio.h>
int perfect(int);
main()
{
int n=1000;
int sum;
int i=1;
while(++i<=1000)
if(perfect(i)!=-1)
printf("%d\n",perfect(i));
return 0;
}
int perfect(int k)
{
int sum=0;
int a;
for(a=1;a<=k;a++)
if(k%a==0)
sum+=a;
return (sum==k)?sum:-1;
}
----------------解决方案--------------------------------------------------------
首先,不能在中文输入法中输入代码.你先检查下.
----------------解决方案--------------------------------------------------------
我完全不懂你算法的意思!真的.....
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int perfect(int);
//这是寻找“完数”而不是素数
main()
{
int n=1000;
int sum;
int i=1;
while(++i<=1000)
if(perfect(i)!=-1)
printf("%d\n",perfect(i));
return 0;
}
int perfect(int k)
{
int sum=0;
int a;
for(a=1;a<k;a++)//原先a<=k是错误的
if(k%a==0)
sum+=a;
return (sum==k)?sum:-1;
}
----------------解决方案--------------------------------------------------------
LZ 那是求素数的么?
而且还有中文输入法
----------------解决方案--------------------------------------------------------
谢谢了
我的代码上没中文输入,贴上去的时候改的
呵呵
谢谢大家
----------------解决方案--------------------------------------------------------