1037: 找出N之内的所有完数

来源:互联网 发布:数控铣削编程实例简单 编辑:程序博客网 时间:2024/05/22 08:24

程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。

Description

一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数,并按下面格式输出其因子:

Input

N

Output

? its factors are ? ? ?

Sample Input

1000

Sample Output

6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124 248 

源代码:

#include<stdio.h>int main(){static int k[20];           //用来存放因子int i,j,n,s,a;scanf("%d",&a);for(j=2;j<a;j++){n=0;                   //因子的个数s=j;for(i=1;i<=j/2;i++)         //从1到该数的二分之一 二分之一之后不可能是他的因数{if((j%i)==0)            //如果是j的因子{n++;                //因子个数+1s=s-i;              //让该数减去它的因子 若最后为0则是完数k[n]=i;             //存放因子}}if(s==0)                    //是完数,则输出{printf("%d its factors are ",j);for(i=1;i<=n;i++)       //循环输出因子printf("%d ",k[i]);printf("\n");}}return 0;}


0 0