完美数
来源:互联网 发布:国家工商网络行政学院 编辑:程序博客网 时间:2024/04/29 20:35
完美数:除了它本身外的约数的和恰好等于它本身
不完美数有两类:真因子的和大于它本身的数——盈数,小于的是亏数。
ecnu 1197 完美数
输入一个数字判断是盈数,亏数,还是完美数。
利用因子和公式解决。
(代码不知道正确不,进不了OJ)
#include <iostream>#include <cstdio>using namespace std;typedef long long LL;// rho = 连乘 (q^(n+1)-1)/(q-1)int main(){ int n; while(cin>>n&&n){ int t=n; LL ans=1; for(int i=2;i*i<=t;i++){ if(t%i==0){ LL r=1; while(t%i==0){ r=r*i; t/=i; } ans=ans*(r*i-1)/(i-1); if(ans>2*n) break; } } if(ans>2*n) { printf("1\n"); continue; } if(t>1) { ans=ans*(1+t); } if(ans>2*n) printf("1\n"); else if(ans==2*n) printf("0\n"); else printf("-1\n"); } return 0;}
sdut 1220 完美数
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1220
输出一定范围内的完美数。
完美数是很少的。打表。
#include <iostream>#include <cstdio>using namespace std;int num[10]={6,28,496,8128,33550336,};int main(){ int a,b; while(cin>>a>>b&&(a+b)){ int sta[10],top=0; for(int i=0;i<5;i++){ if(num[i]<=b&&num[i]>=a){ sta[top++]=num[i]; } } if(top>0){ for(int i=0;i<top-1;i++) printf("%d ",sta[i]); printf("%d\n",sta[top-1]); } else printf("No\n"); } return 0;}
0 0
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 完美数
- 求完美数
- C语言完美数
- 完美数的判断
- 算法:完美数
- AcDream 1083: 完美数
- 问题九十三:完美数
- 【C++】完美立方数
- datatable转json
- 一次Linux服务器被入侵和删除木马程序的经历
- 枚举(enum)
- Java并发
- CAS部署错误3:java.security.cert.CertificateException: No name match
- 完美数
- 字段多语言构件
- 101. Symmetric Tree
- MySQL Workbench 修改快捷键
- Codeforces 624
- t-SNE
- 报表类构件简介
- jvm垃圾回收机制介绍
- 如何构建一个每天数十亿次请求级别的web应用