zoukankan      html  css  js  c++  java
  • 数学趣题——完全数

    如果一个数等于它的因子之和,就为完全数。求出1000以内的完全数

    穷举法:(1)求出a的所有因子(2)检测所有因子和是不是等于a

       1: #include <stdio.h>
       2:  
       3: int factorSum(int a)            /*求a的因子和*/
       4: {
       5:     int i, sum = 0;
       6:     for(i=1;i<a;i++)
       7:         if(a%i == 0)            /*i是a的一个因子*/
       8:             sum = sum + i;    /*累加求和*/
       9:     return sum;            /*返回a的因子的和*/
      10: }
      11:  
      12: int perfextnumber(int a)        /*判断a是否是完全数*/
      13: {
      14:     if(a == factorSum(a)) return 1;
      15:     else return 0;
      16: }
      17:  
      18: int main()
      19: {
      20:     int a;
      21:     printf("There are following perfect numbers 1~1000 are:\n");
      22:     for(a=1;a<=1000;a++)
      23:     {                        /*寻找1-1000以内的完全数*/
      24:         if(perfextnumber(a))
      25:             printf("%d ",a);
      26:     }
      27: }
      28:  
  • 相关阅读:
    Gym 101194L / UVALive 7908
    POJ 2259
    POJ 2559
    Gym 101194E / UVALive 7901
    Gym 101194D / UVALive 7900
    一种整数集上二分的正确写法
    日常训练记录
    Gym 101194C / UVALive 7899
    Gym 101194A / UVALive 7897
    HDU 5542
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/1744189.html
Copyright © 2011-2022 走看看