依题意,只需求出所有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;
}