Chinaunix首页 | 论坛 | 博客
  • 博客访问: 241827
  • 博文数量: 35
  • 博客积分: 791
  • 博客等级: 军士长
  • 技术积分: 510
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-05 16:56
文章分类
文章存档

2013年(7)

2012年(28)

我的朋友

分类: C/C++

2012-09-23 18:46:06

程序要求:完数,即完美数,一个数字如果恰好等于除它本身之外的因子之和,例如:6=1+2+3。求出1~100之间的所有完数,并打印出该数的因数。
程序如下:

 

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5.     int i;
  6.     for(i=0;i<100;i++)
  7.        wanshu(i);
  8.     return 0;

  9. }
  10. int wanshu(int i)
  11. {
  12.     int j;
  13.     int k=0;
  14.     int sum=0;
  15.     int f[100];
  16.     for(k=0;k<100;k++)
  17.         f[k]=0;
  18.     for(j=1;j<i;j++)
  19.     {
  20.         if(i%j==0)
  21.         {
  22.             f[k]=j;
  23.             sum+=j;
  24.             k++;
  25.         }

  26.     
  27.     }
  28.     if(sum==i)
  29.     {
  30.     printf("%d 是完数\n",i);
  31.     printf("它的因数为:\n");
  32.     for(k=0;k<100;k++)
  33.     {
  34.         if(f[k]!=0)
  35.         printf("%d\n",f[k]);
  36.     }
  37.     }
  38.     else
  39.         sum=0;

  40. }


阅读(2648) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~