文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C程序习题-找出1000之内的所有完数[6.7]

C程序习题-找出1000之内的所有完数[6.7]

时间:2010-07-28  来源:chengxiaopeng

    一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3而6=1=2=3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1,2,3     看到这个题目,我们需要解决的是找出一个数的因子,而找因子的规律是,从1开始进行求余运算,如果求余为零,则该数为其中的一个因子。然后递加1,再进行判断,直到递加到和该数相等。然后把所有的因子加起来,看时候和该数相同。如果相同,然后在进行该项的输出。输出可以另写一个函数,进行调用。代码如下:

#include <stdio.h>

void print_item(int);
int main(int argc,int *argv[])
{
    int i,j,k = 0,result;
    int n = 1000;
    for (i = 1; i < n; i++)
    {
        result = 0;
       for (j = 1; j < i; j++)
       {
           if (i % j == 0)
           {
              result += j;
           }
       }
       
       if (result == i)
       {
          print_item(i);
       }
    }
    
    system("pause");
    return 0;
}

void print_item(int number)
{
     int i;
     printf("%d its factors are:",number);
     for (i = number; i > 1; i--)
     {
         if (number % i == 0)
         {
            if (i == 2)
            {
               printf("%d",number / i);
            }
            else
            {
                printf("%d,",number / i);
            }
         }
     }
     printf("\n");
}

经程序运算1到1000中的完数有6,28,496

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载