• 算法15---数论1---完全数


    算法15---数论1---完全数

    完全数是一些特殊的自然整数。完全数等于其所有因子之和。所谓因子是所有的可以整除这个数的数,而不包括这个数本身。
     
    一些完全数的概念
    (1)亏数:当一个自然数的所有因子之和小于该自然数,那么该自然数便是亏数;
    (2)盈数:当一个自然数的所有因子之和大于该自然数,那么该自然数便是盈数;
    (3)完全数:当一个自然数的所有因子之和等于该自然数,那么该自然数便是完全数;
     
    相关的结论
    1 每一个完全数都可以表示成连续自然数之和
    2 每个完全数都是调和数;
         若一个正整数n的所有因子的调和平均是整数,n便称为调和数(Harmonic number)。它又称欧尔数(Ore number)。
    3 每一个完全数都可以表示为2的一些连续正整数次幂之和。
         如:6=2+2²
    4 已知的完全数都是以6或者8结尾。
    5 除6以外的完全数都可以表示成连续奇立方之和。
         如:28=1³+3³;
     
    完全数的实现如下
     
     1 /*
     2     题目:完全数
     3     author taoliu——alex  2016.10
     4 
     5 */
     6 
     7 
     8 #include <stdio.h>
     9 
    10 
    11 void perfectnum(int n)
    12 {
    13 
    14     int perfect[100]={0};
    15     int sum=0;
    16     for (int i = 1; i < n; i++)
    17     {
    18         if (n%i==0)
    19         {
    20             perfect[i]=i;
    21             sum=sum+i;
    22         }
    23     }
    24     if (sum==n)
    25     {
    26         printf("the number %d is perfect number!
    ",n);
    27         printf("the number %d is made up as follow!
    ",n);
    28         for (int i = 0; i < 100; i++)
    29         {
    30             if (perfect[i]!=0)
    31             {
    32                 printf("%d ", perfect[i]);
    33             }
    34         }
    35 
    36     }
    37     //else
    38     //    printf("%d is not perfect number!
    ",n );
    39 
    40 
    41 }
    42 
    43 int main()
    44 {
    45 
    46 
    47     //可以输入你想要判断的数字
    48     /*
    49     int n;
    50     printf("please input the number you want to judge! 
    ");
    51     scanf("%d",&n);
    52     perfectnum(n);
    53     */
    54     //也可以输出在某一范围内的所有完全数
    55     printf("please input the scope you want to find! 
    ");
    56     int scope;
    57     scanf("%d",&scope);
    58 
    59     for (int i = 1; i < scope; ++i)
    60     {
    61         perfectnum(i);
    62     }
    63     return 0;
    64 
    65 }
     
  • 相关阅读:
    html5+plus(5+app) 扫一扫(plus.barcode)
    uniapp地图控件(浅显使用)
    sku排列算法,库存类展示(规格,型号,颜色等)
    『嗨威说』数据结构中常用的查找算法思路总结
    『ACM C++』 PTA 天梯赛练习集L1 | 057-063
    『ACM C++』 PTA 天梯赛练习集L1 | 054-056
    『ACM C++』 PTA 天梯赛练习集L1 | 052-053
    『ACM C++』 PTA 天梯赛练习集L1 | 050-51
    『ACM C++』 PTA 天梯赛练习集L1 | 048-49
    『ACM C++』 PTA 天梯赛练习集L1 | 046-47
  • 原文地址:https://www.cnblogs.com/tao-alex/p/5933474.html
Copyright © 2020-2023  润新知