牛客IOI周赛20-普及组A完全数

完全数

https://ac.nowcoder.com/acm/contest/8997/A

A完全数
首先说一声抱歉,语文不好可能词不达意。
我们可以用判素数的思想来思考这题,假设ab=n(即a,b是n的两个因子),那么a,b中较小的因子一定属于
1,sqrt(n)
因为n本身不算做因子那么我们可以枚举i from 2 to sqrt(n)的数(即枚举a
b=n a,b因子较小的那一个)
计数sum从1开始
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll sum=1;//计算因子和
ll num;//题目中的n
cin>>num;
for(int i=2;i<=sqrt(num);i++)
{
if(num%i==0)//如果i是num的因子,自然能被num整除
{
sum=sum+i+num/i;//例如2*5=10我们知道2是10的因子自然知道5是另一个因子;
}
}
//这里根据题目所给条件输出相应的内容即可
if(sum==num) cout<<"Pure"<<endl;
else if(sum>num) cout<<"Late"<<endl;
else if(sum<num) cout<<"Early"<<endl;
return 0;
}

全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务