请问 求1000以内完全数的c语言程序怎么写,并且结果要按格式输出因子,如:6=1+2+3

完全数就是 这个数的全部约数(真因子)加起来与原数相等。
2025-03-10 23:03:32
推荐回答(2个)
回答1:

回答如下:

#include "stdio.h"
int main(void){
    int i,j,m;
    for(i=4;i<1000;i+=2){
        for(m=1,j=2;j*j<=i;j++)
            if(!(i%j))
                m+=(j!=i/j ? j+i/j : j);
        if(m==i){
            printf("%3d = 1",i);
            for((m>>=1)+=1,j=2;j                if(!(i%j))
                    printf("+%d",j);
            printf("\n");
        }
    }
    return 0;
}

回答2:

#include
int main( )
{
int i,j,n,sum,a[100]={0};

for(n=2;n<1000;n++)
{
sum = 0;
j=0;
for(i=1;i<=n/2;i++)
{
if(n%i==0)
{
sum+=i;
a[j]=i;
j++;
}
}
if(sum == n)
{
printf("%d=",n);
for(i=0;i {
if(i==j-1)
printf("%d\n",a[i]);
else
printf("%d+",a[i]);
}
}
}
return 0;
}