PAT_B_循环-23. 找完数(20)
来源:互联网 发布:怎样才能赚到钱 知乎 编辑:程序博客网 时间:2024/04/29 07:25
循环-23. 找完数(20)
时间限制
100 ms
内存限制
32000 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈建海(浙江大学)
来源
ZOJ
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(0<m<=n<=10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。
输入样例:
1 30
输出样例:
1 = 16 = 1 + 2 + 328 = 1 + 2 + 4 + 7 + 14
#include <iostream>#include <math.h>using namespace::std;bool isWanshu(int n){ int i; string str="1"; string str2=""; int sum=1; for (i=2; i<=sqrt(n); i++) { if (n%i==0) { int m=n/i; char buf[10]; sprintf(buf, " + %d", i); string b = buf; str+=b; if (m!=n) { sum+=(i+n/i); sprintf(buf, " + %d", n/i); b = buf; str2=b+str2; } else { sum+=i; } } } if (sum==n) { cout<<n<<" = "<<str<<str2<<endl; return true; } else { return false; }}int main(int argc, const char * argv[]){ int i=1; int n,m ; cin>>m>>n; for (i=m ; i<=n; i++) { isWanshu(i); } return 0;}
0 0
- PAT_B_循环-23. 找完数(20)
- PAT_B_循环-19. 币值转换(20)
- PAT_B_循环-18. 龟兔赛跑(20)
- PAT_B_字符串-05. 字符串循环左移(20)
- PAT_B_循环-22. 输出闰年(15)
- PAT_B_循环-20. 猜数字游戏(15)
- PAT_B_结构-05. 有理数均值(20)
- PAT_B_字符串-06. IP地址转换(20)
- PAT_B_字符串-07. 说反话-加强版 (20)
- PAT_B_字符串-03. 字符串的冒泡排序(20)
- PAT_B_字符串-02. 删除字符串中的子串(20)
- PAT_B_循环-21. 求交错序列前N项和(15)
- 循环-23. 找完数(20)
- 循环-23. 找完数(20)
- 循环-23. 找完数(20)
- 循环-23. 找完数(20)
- 循环-23. 找完数(20)
- 循环-23. 找完数(20)
- Android 农历日历算法
- UVA - 10780 Again Prime? No Time. (质因子分解)
- 页面异步保存列表列
- JNA结构体数组
- hdu1429胜利大逃亡(续)(状态压缩+bfs)
- PAT_B_循环-23. 找完数(20)
- ios7 上修改状态栏颜色
- IOS 崩溃日志调试
- 黑马程序员-----异常
- Unity3d中制作Loading场景进度条所遇到的问题
- 如何访问google?
- PAT_B_循环-22. 输出闰年(15)
- getCurrentSession创建
- AC自动机