C语言题目 编程 找出1000以内的所有”完数“,所谓”完数“是指一个数恰好等于它的因子和,例如6=1+2+3..
#include<stdio.h>
void main()
{
int i,j,sum;
for(i=1;i<100;i++)
{
sum=0;
for(j=1;j<i;j++)
if(i%j==0)
sum+=j;
if(sum==i)
printf("%d是一个完数\n",i);
}
}
#include <stdio.h>
#include <string.h>
void main()
{
int i,j,sum=1;
for(i=3;i<=1000;i++)
{
sum=1;
for(j=2;j<i;j++)
{
if( i%j==0)
sum+=j;
}
if(i==sum)
{
printf("%3d, 因子为:",i);
for( j=2; j<i; j++ )
{
if( i%j == 0 )
printf("%3d,", j );
}
printf("\n");
}
}
}
#include<stdio.h>
#define N 100
int main(void)
{
int i,j,k=0,yinzi[N];
for(i=2;i<1001;i++)
{
yinzi[99]=0;
for(j=1;j<i;j++)
if(i%j==0)
yinzi[k++]=j;
for(j=0;j<k;j++)
yinzi[99]+=yinzi[j];
if(i==yinzi[99])
{
printf("%d=",i);
for(j=0;j<k;j++)
{
printf("%d",yinzi[j]);
if(j==k-1)break;
printf("+");
}
printf("\n");
}
k=0;
}
}