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

题目描述

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

输入

N

输出

? its factors are ? ? ?

样例输入
1000
样例输出
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()
{
    int n,i,z;
    
    scanf("%d",&n);
    
    for(z=2;z<n;z++)
    {
     int j,b,k,a[100],sum;
    b=z;k=0;sum=0;
    
       for(j=1;j<z;j++)
       {
            if(z%j==0){
               a[k]=j;k++;
           }
       }
       
      for(i=0;i<k;i++)
         sum=sum+a[i];
         
      if(sum==b){
         printf("%d its factors are ",b);
         
         for(i=0;i<k;i++)
          {
             if(i+1==k)
               printf("%d \n",a[i]);
             else
               printf("%d ",a[i]);
          }   
         }  
    }
    return 0;
 }
posted on 2017-03-15 20:08  zady  阅读(8576)  评论(0编辑  收藏  举报