• 习题6-3 使用函数输出指定范围内的完数


     1 #include<stdio.h>
     2 
     3 int factorsum(int number);
     4 void PrintPN(int m, int n);
     5 
     6 int main(void)
     7 {
     8     int m, n;
     9 
    10     scanf_s("%d %d", &m, &n);
    11 
    12     if (factorsum(m) == m)
    13     {
    14         printf("%d is a perfect number
    ", m);
    15     }
    16 
    17     if (factorsum(n) == n)
    18     {
    19         printf("%d is a perfect number
    ", n);
    20     }
    21 
    22     PrintPN(m, n);
    23 
    24     return 0;
    25 }
    26 
    27 int factorsum(int number)
    28 {
    29     /*
    30         所有数都包含因数1,所以因数和的初值设为1,然后从2开始判断
    31     */
    32     int sum = 1;                            
    33     for (int i = 2; i < number; i++)
    34     {
    35         if (number % i == 0)
    36         {
    37             sum = sum + i;
    38         }
    39     }
    40     return sum;
    41 }
    42 
    43 void PrintPN(int m, int n)
    44 {
    45     int flag = 0;
    46     for (int i = m; i <= n; i++)
    47     {
    48         if (factorsum(i) == i)
    49         {
    50             flag = 1;
    51 
    52             printf("%d = 1", i);
    53             for (int j = 2; j < i; j++)
    54             {
    55                 if (i % j == 0)
    56                 {
    57                     printf(" + %d", j);
    58                 }                    
    59             }
    60 
    61             printf("
    ");
    62         }
    63     }
    64     if (flag == 0)
    65     {
    66         printf("No perfect number
    ");
    67     }
    68 }
  • 相关阅读:
    线性回归(linear regression)之监督学习
    hadoop学习笔记之倒排索引
    Java学习笔记之==与equals
    Java学习笔记之深入理解引用
    mysql
    mysql
    JAVA
    nio
    JVM
    java
  • 原文地址:https://www.cnblogs.com/2018jason/p/10962314.html
Copyright © 2020-2023  润新知