题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6=1+2+3.编程找出1000以内的所有完数。
#include <stdio.h>
void main()
{
intx,temp,sum;//X表示要判断的数,temp表示数的因子,sum表示因子之和.
for(x=1;x<1000;x++)
{
sum= 0;
for(temp=1;temp<x;temp++)
{
//判断x能否被temp整除,如果可以,则是因子,进行求和
if(x%temp==0)
{
sum= sum+temp;
}
}
//如果是完数,打印输出
if(sum==x)
{
printf("%d ",x);
}
}
printf("\n");
}
找出200以内的完数。
#include<stdio.h>
int main(void)
{
int i,j,s=1;
for(i=1;i<=200;i++)
{
s=1;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
s=s+j;
}
if(s==i)
{
printf("%d=1",i);
for(j=2;j<=i/2;j++)
if(i%j==0) printf("+%d",j);
printf("\n");
}
}
return 0;
}