python中求2-1000的完数_C++求2→1000之间的完数。

2010-12-26 回答

#define M 1000    /*定义寻找范围*/

#include

int main()

{int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;

int i,a,n,s;

for(a=2;a<=M;a++)    /*a是2~1000之间的整数,检查它是否完数*/

{n=0;    /*n用来累计a的因子的个数*/

s=a;    /*s用来存放尚未求出的因子之和,开始时等于a*/

for(i=1;i

if(a%i==0)    /*如果i是a的因子*/

{n++;    /*n加1,表示新找到一个因子*/

s=s-i;    /*s减去已找到的因子,s的新值是尚未求出的因子之和*/

switch(n)    /*将找到的因子赋给k1,...,k10*/

{case1:k1=i;break;    /*找出的第1个因赋给k1*/

case2:k2=i;break;    /*找出的第2个因赋给k2*/

case3:k3=i;break;    /*找出的第3个因赋给k3*/

case4:k4=i;break;    /*找出的第4个因赋给k4*/

case5:k5=i;break;    /*找出的第5个因赋给k5*/

case6:k6=i;break;    /*找出的第6个因赋给k6*/

case7:k7=i;break;    /*找出的第7个因赋给k7*/

case8:k8=i;break;    /*找出的第8个因赋给k8*/

case9:k9=i;break;    /*找出的第9个因赋给k9*/

case10:k10=i;break;  /*找出的第10个因赋给k10*/

}

}

if(s==0)    /*s=0表示全部因子都已找到*/

{printf("%d Its factors are", a);

if(n>1)printf("%d,%d",k1,k2);    /*n>1表示a至少有2个因子*/

if(n>2)printf(",%d",k3);    /*n>2表示至少有3个因子,故应再输出一个因子*/

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");}

}

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值