我自己写的,写完了感觉思路是对的吧..但是结果不对
题目:打印1000以内的完数
#include<stdio.h>
int main()
{
int i,j,k=0;
for(i=1;i<1000;i++)
{
for(j=1;j<=i-1;j++)
{
if(i%j==0)
{
i=i/j;
k=k+j;
}
}
if(k==i)
{
printf("%d\n",i);
}
}
}
我自己写的,写完了感觉思路是对的吧..但是结果不对
题目:打印1000以内的完数
#include<stdio.h>
int main()
{
int i,j,k=0;
for(i=1;i<1000;i++)
{
for(j=1;j<=i-1;j++)
{
if(i%j==0)
{
i=i/j;
k=k+j;
}
}
if(k==i)
{
printf("%d\n",i);
}
}
}
改动处见注释,供参考:
#include<stdio.h>
int main()
{
int i, j, k = 0;
for (i = 1; i < 1000; i++)
{
for (j = 1, k = 0; j <= i - 1; j++) //for(j=1;j<=i-1;j++) 修改
{
if (i % j == 0)
{
//i = i / j; 修改
k = k + j;
}
}
if (k == i) //if (k = =i) 修改
{
printf("%d\n", i);
}
}
}