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;
}
全部评论

相关推荐

05-12 17:28
已编辑
门头沟学院 硬件开发
ldf李鑫:不说公司名祝你以后天天遇到这样的公司
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务