完美数 : 简单数论模拟题

对于一个 正整数,如果它和除了它自身以外的所有 「正因子」 之和相等,我们称它为 「完美数」。

给定一个 整数 n, 如果是完美数,返回 true,否则返回 false

示例 1:

输入:num = 28

输出:true

解释:28 = 1 + 2 + 4 + 7 + 14
1, 2, 4, 7, 和 14 是 28 的所有正因子。

示例 2:

输入:num = 6

输出:true

示例 3:

输入:num = 496

输出:true

示例 4:

输入:num = 8128

输出:true

示例 5:

输入:num = 2

输出:false

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
    int num,sum=0,i,f=0;
    scanf("%d",&num);
    for(i=1;i<num;i++){
          if(num%i==0){
              sum+=i;
        }
    }
    if(sum==num){
        f=1;
    }else{
        f=0;
    }
    if(f){
        printf("true\n");
        printf("%d = 1 ",num);
        for(i=2;i<num;i++){
            if(num%i==0){
               printf("+ %d ",i);  
            }
        }
    }else{
        printf("false");
    }                                                                                                                                                                                                                               
  return 0;
}

 

 
上一篇:蓝桥杯基础练习BASIC-28 Huffuman树


下一篇:全网首发:明明已安装也存在,报错找不到lualib.h