2024级程序设计基础将其中考试暨新生赛-E判断完数
链接:https://ac.nowcoder.com/acm/contest/95677/E链接:https://ac.nowcoder.com/acm/contest/95677/E
来源:牛客网
题目描述
由键盘输入一个整数n,判断其是否为完数。
例如,28的因子为1、2、4、7,14,而28=1+2+4+7+14。因此28是“完数”。(注意:1不算完数)
输入描述:
输入为一个整数n,范围为(1≤n≤10000)。
输出描述:
若n是完数输出YES,否则输出NO,输出后有换行。
做这道题时要注意审题,题中说完数是自己所有除了本身以外的因子,使用循环时要去掉n,使循环 for(i=1;i<n;j++) 而不是i<=n,
还有就是1不是完数,最后要把它排除。
#include<iostream>
using namespace std;
int main()
{
long n;
cin>>n;
int c=0;
for(int i=1;i<n;i++){
if(n%i==0){c+=i;}
}
if(c==n&&n!=1){
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
return 0;
}