zoukankan      html  css  js  c++  java
  • [刷题] PTA 完全数

    PTA

    7-45 找完数

    网友“云上明月”的程序:

     1 #include<stdio.h>
     2 int isPerfect(int num);
     3 
     4 int main() {
     5     int i,j,m,n,exist=0;
     6     int maxFactor;
     7     scanf("%d%d",&m,&n);
     8     for(i=m; i<=n; i++) {
     9         maxFactor = isPerfect(i);
    10         if(maxFactor) {
    11             exist = 1;
    12             printf("%d =",i);
    13             for(j=1; j<i; j++) {
    14                 if(i%j==0) {
    15                     printf(" %d",j);
    16                     if(j<maxFactor) printf(" +");
    17                     else printf("
    ");
    18                 }
    19             }
    20         }
    21     }
    22     if(!exist) printf("None");
    23     return 0;
    24 }
    25 
    26 int isPerfect(int num) {
    27     int i,factorSum=0,maxFactor=0,isPerfect=0;
    28     for(i=1; i<num; i++) {
    29         if(num%i==0) {
    30             factorSum += i;
    31             maxFactor = i;
    32         }
    33     }
    34     if(factorSum == num) {
    35         isPerfect=1;
    36     }
    37     return isPerfect*maxFactor;
    38 }

    我的部分程序:

    int isPerfect(int num){
        int i,sum=0,max=0;
        for(i=1;i<num;i++){
            if(num%i==0){
                sum+=i;    
                max=i;
            }
        }
        if(sum==num){
            return max;
        }
    }

    差距:

    1、变量命名简单,区分度不强

    2、没有定义标识是否完全数的变量,这样当要判断的数不是完全数时就不能返回0了

  • 相关阅读:
    go 代理
    mongo创建用户
    博客搬家&留言板
    noip2020 SD选手迷惑行为大赏
    noip2020游记
    P4174 [NOI2006] 最大获利
    P3327 [SDOI2015]约数个数和
    P5069 [Ynoi2015]纵使日薄西山
    P3747 相逢是问候
    HDE6315 Naive Operations
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10755083.html
Copyright © 2011-2022 走看看