标题:[求助]关于"完数"的题!
取消只看楼主
daniexu
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2007-2-3
 问题点数:0 回复次数:0 
[求助]关于"完数"的题!

关于"完数"的
找出1000以内的所有"完数". 请帮我讲解一下怎么编的呀!我看潭老先生的书,上面关于完数的看的不是太明白.
下面是潭老先生书中写的方法 为什么他的K只取到10 是1000以内的"完数"最多只能由10个因子构成吗?谢谢大家帮忙!

#define M 1000

#include<stdio.h>

void main()
{
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for(a=2;a<=M;a++)
{
n=0;
s=a;
for(i=1;i<a;i++)
if(a%i==0)
{
n++;
s=s-i;
switch(n)
{
case 1:
k1=i;break;
case 2:
k2=i;break;
case 3:
k3=i;break;
case 4:
k4=i;break;
case 5:
k5=i;break;
case 6:
k6=i;break;
case 7:
k7=i;break;
case 8:
k8=i;break;
case 9:
k9=i;break;
case 10:
k10=i;break;
}
}
if(s==0)
{
printf("%d,its factor are",a);
if(n>1) printf("%d,%d",k1,k2);
if(n>2) printf(",%d",k3);
if(n>3) printf(",%d",k4);
if(n>4) printf(",%d",k5);
if(n>5) printf(",%d",k6);
if(n>6) printf(",%d",k7);
if(n>7) printf(",%d",k8);
if(n>8) printf(",%d",k9);
if(n>9) printf(",%d",k10);
printf("\n");
}

}

}

搜索更多相关主题的帖子: int 老先生 void 
2007-08-13 22:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-162466-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057791 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved