NC213387. 完全数
描述
输入描述
一个正整数
输出描述
如果是完全数,则输出“Pure”。
如果是过剩数,则输出“Late”。
如果是不足数,则输出“Early”。
示例1
输入:
28
输出:
Pure
说明:
1+2+4+7+14=28示例2
输入:
15
输出:
Early
说明:
1+3+5=9<15示例3
输入:
72
输出:
Late
说明:
1+2+3+4+6+8+9+12+18+24+36>72C(clang11) 解法, 执行用时: 31ms, 内存消耗: 412K, 提交时间: 2021-05-16 15:17:28
#include<stdio.h> int main() { long long i,sum=0,n; scanf("%lld",&n); for(i=2;i*i<n;i++) if(n%i==0){ sum+=i;sum+=n/i; } if(i*i==n)sum+=i; sum+=1; if(sum>n)printf("Late"); else if(sum==n)printf("Pure"); else printf("Early"); }
C++(clang++11) 解法, 执行用时: 36ms, 内存消耗: 380K, 提交时间: 2020-11-29 18:43:22
#include<cstdio> typedef long long LL; LL a; LL s=1; int main() { scanf("%lld",&a); for(LL i=2;i*i<=a;i++) if(a%i==0)s+=i,s+=a/i; if(s==a)puts("Pure"); else puts(s>a?"Late":"Early"); return 0; }
Python3 解法, 执行用时: 410ms, 内存消耗: 4580K, 提交时间: 2023-02-05 15:55:30
n= int(input()) ans=1 for i in range(2,int(n**0.5+1)): if(n%i==0):ans+=(i+n/i) if(int(ans)==n):print("Pure") elif(int(ans)>n):print("Late") else:print("Early")