//一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include <stdio.h>
int main()
{
int i, j, n, sum = 0; //因数和sum
printf("please enter the N:\n");
scanf("%d",&n);
printf("%d内完数有:\n",n);
for (i = 1; i < n; i++) //顺序取n以内数i
{
for (j = 1; j < i; j++) //求能被i整除的因数j
{
if ((i % j) == 0)
{
sum += j; //将i的因数j相加存于sum
}
}
if (sum == i) //当因数的和sum=i时i为完数
{
printf("%d ",i);
}
sum = 0; //清零 计算下一个i
}
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{
int i, j, n, sum = 0; //因数和sum
printf("please enter the N:\n");
scanf("%d",&n);
printf("%d内完数有:\n",n);
for (i = 1; i < n; i++) //顺序取n以内数i
{
for (j = 1; j < i; j++) //求能被i整除的因数j
{
if ((i % j) == 0)
{
sum += j; //将i的因数j相加存于sum
}
}
if (sum == i) //当因数的和sum=i时i为完数
{
printf("%d ",i);
}
sum = 0; //清零 计算下一个i
}
printf("\n");
return 0;
}