完数

一个数如果恰好等于它的因子之和,这个数就称为完数

相关习题:

《C程序设计》(第三版)6.7

《C程序设计教程》 5.7

Solution by Mutoo:

Code:
  1. #include<stdio.h>  
  2. void main()  
  3. {  
  4.     const COUNT = 1000; // 计算1000以内的完数  
  5.     int i,j;  
  6.     int addend;  
  7.     for(i=1;i<=COUNT;i++)  
  8.     {  
  9.         addend = 0; // 加数初始化  
  10.         for(j=1;j<=i/2;j++) // 任何一个数的因数的大小不会超过它的一半  
  11.             if(i%j==0) addend+=j; // 如果j是i的因数,将其累加  
  12.         if(i==addend){ // 筛选完数  
  13.             printf("%4d its factors are ",i);  
  14.             for(j=1;j<=i/2;j++)  
  15.                 if(i%j==0) (j>1)?printf(","):0,printf("%d",j); // 这里的 ?: 表达式控制输入格式中的','(逗号)  
  16.             printf("/n");  
  17.         }  
  18.     }  
  19. }  
  20.   
  21. /* Output 
  22.    6 its factors are 1,2,3 
  23.   28 its factors are 1,2,4,7,14 
  24.  496 its factors are 1,2,4,8,16,31,62,124,248 
  25. *******/  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值