C语言 完数

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:06:55
求1000以内的完数并表示~~~例6=1+2+3
最好有注释和调试过程~本人初学~
用for 或while循环~

特别是调试过程和注释~
老师要~~!!!!!!
谢谢了~~分一定给~`

应付老师。。。
你就不能好好学么?
不明白你花钱去干啥
答案我有现成的
就是不告诉你,
今天晚上好好自己想想吧
明天弄不出来找我
326070672

#include <stdio.h>

#define MAX 1000 /* 最大1000以内 */

void f( int n ) /* 判断n是否为完数 */
{
int i = 2;
int j = n / 2;
int sum = 1; /* n的因子的和,1必为n的因子 */
for ( ; i<=j; ++i )
{
if ( 0 == n%i )
{
sum += i;
}
}

if ( n == sum )
{
printf( "%d\n", n );
}
}

int main()
{
int i = 0;
for ( ; MAX>=i; ++i )
{
f( i );
}

return 0;
}

#include<stdio.h>
int main()
{
int x,sum,n;
for(x=1;x<=1000;x++)
{
sum=1;
for( n=2;n<x;n++)
if(x%n==0)
sum+=n;
if(sum==x)
printf("%d\n",sum);
}
return 0;
}