/求完数
#include"stdio.h"
#define S 50
void main()
{
int i,j,m,t,k=0,sum=0,a[S];
printf("要求1到几的完数?(小于2000)\n");
scanf("%d",&t);
printf("1到%d的完数有:\n",t);
for(i=2;i<=t;i++)
{
for(m=0;m<S;)//清空前一个数的因数
{
a[m++]=0;
}
for(j=1,m=0,sum=0;j<i;j++)//此循环用于找出i的因数并累加到sum
{
if(i%j==0)
{
sum+=j;
a[m++]=j;
}
}
if(sum==i)//如果i是完数,完数的个数k加1,并输出i以及各因数
{
k++;
printf("%d :%d=1",i,i);
m=1;
while(a[m]!=0&&m<S)
{
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载