站外题
题目如下
求完全数的个数
题目描述
一个大于1的正整数若等于全部因子的和,则称此数为完全数。例如:6有因子1,2,3。同时6=1+2+3,所以6是完全数。
输入
一个正整数N(9<n<99999)。
输出
小于等于N的完全数的个数。
代码
#include <bits/stdc++.h>
using namespace std;
typedef char cc;
typedef int ii;
typedef double dd;
typedef long long ll;
typedef bool bb;
typedef float ff;
typedef string ss;
ll yzdh(int x){
ll sum=1;
for(int i=2;i*i<=x;i++){
if(i*i==x && x%i==0){
sum+=i;
}else if(x%i==0){
sum+=i+x/i;
}
}
return sum;
}
ll n,cnt;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
if(yzdh(i)==i){
cnt++;
}
}
cout<<cnt;
return 0;
}
谢谢各位大佬相助!!!!!!!!!!!!!!!!!!!
此外
有人玩第五吗?