请教一个简单但较怪的问题。
#include <stdio.h>
int main()
{
int i=2,j=1,sum;
for(;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if((i%j)==0)
sum=sum+j;
if(i==sum)
{
printf("%d its factors are");
for(j=1;j<i;j++)
if((i%j)==0)
printf(" %d",j);
printf("\n");
}
}
return 0;
}
结果部分数据较怪,不知是否与电脑有关,大家尝试下。
谢谢。
[解决办法]
你想要计算什么 是不是sum=0;这有问题
[解决办法]
此处
printf("%d its factors are",i);
楼主什么问题。。。
[解决办法]
较怪是什么意思啊?让我们猜啊,请把问题说清楚
[解决办法]
楼主是不是相求1000以内的完全数,完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
下面是对你的代码的简单的修改,参考一下吧~
#include <stdio.h>
int main()
{
int i=2,j=1,sum, k;
for(;i<=1000;i++)
{
sum=0;
for(j=1;j<i;j++)
if((i%j)==0)
sum=sum+j;
if(i==sum)
{
printf("%d its factors are", i);
for(k = 1;k < i;k++)
if((i%k)==0)
printf(" %d",k);
printf("\n");
}
}
return 0;
}