A-完全数
完全数
https://ac.nowcoder.com/acm/contest/8997/A
依题意,只需求出所有n的约数再进行判断。
不能直接O(n)扫描,显然约数是一对一对的(注意特判完全平方数),只需算小于的那一半约数即可
#include<cstdio> #include<cmath> using namespace std; long long n,lim; long long ans; int main() { scanf("%lld",&n);lim=sqrt(n); for(int i=2;i<=lim;++i)if(n%i==0)ans+=i+n/i; ++ans;if(lim*lim==n)ans-=lim; if(ans==n)puts("Pure"); else if(ans>n)puts("Late"); else puts("Early"); return 0; }