Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20029 | 桑迪 | 求完全数的个数 | C++ | 通过 | 100 | 1 MS | 252 KB | 399 | 2021-05-27 22:11:01 |
#include<iostream> #include<cstdio> using namespace std; bool check(int x){ int sum=1,i; for (i=2;i*i<=x;++i) if (x%i==0)sum=sum+i+x/i; if (x==sum)return 1; else return 0; } int main() { int i,n,sum=0,tot=0; cin>>n; if (n<28)cout<<1; else{ for (i=1;;i+=2){ if (tot+i*i*i>n)break; tot+=i*i*i; if(check(tot))sum++; } cout<<sum; } return 0; }