厦大C语言上机 1495 亲密对数
2018-01-14 11:31
281 查看
1495.亲密对数
时间限制: 1000 MS 内存限制: 65536 K
提交数: 0 (0 users) 通过数: 0 (0 users)
问题描述
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。键盘输入两个整数m和n(m<n),编程求m到n之间所有亲密对数。注意,每一对(A,B)只需输出A即可,一个A占一行。
输入格式
整数m和n
输出格式
m到n之间的亲密对数,每一对(A,B)只需输出A
样例输入
4 500
样例输出
6
28
220
284
496
来源
xmu
时间限制: 1000 MS 内存限制: 65536 K
提交数: 0 (0 users) 通过数: 0 (0 users)
问题描述
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。键盘输入两个整数m和n(m<n),编程求m到n之间所有亲密对数。注意,每一对(A,B)只需输出A即可,一个A占一行。
输入格式
整数m和n
输出格式
m到n之间的亲密对数,每一对(A,B)只需输出A
样例输入
4 500
样例输出
6
28
220
284
496
来源
xmu
#include <stdio.h> #include <stdlib.h> int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; } int factor_sum(int number) { int sum = 1, i; for (i = 2; i * i <= number; ++i) { if (number % i == 0) { if (i * i == number) sum += i; else sum += i + number / i; } } return sum; } int main() { int m, n, i, sum; int intimacy[10000] = { 0 }; int intimacy_size = 0; scanf("%d %d", &m, &n); for (i = m; i <= n; ++i) { sum = factor_sum(i); if (i <= sum && i == factor_sum(sum)) { intimacy[intimacy_size++] = i; if (m <= sum && sum <= n && i != sum) intimacy[intimacy_size++] = sum; } } qsort(intimacy, intimacy_size, sizeof(int), cmp); for (i = 0; i < intimacy_size; ++i) printf("%d\n", intimacy[i]); return 0; }
相关文章推荐
- 厦大C语言上机 1355 开学第一考
- 厦大C语言上机 1367 几何级数的计算机验证法
- 厦大C语言上机 1378 寻书之旅2
- 厦大C语言上机 1484 成绩统计
- 厦大C语言上机 1501 整理成绩
- 厦大C语言上机 1370 谁是下一个十佳歌手
- 厦大C语言上机 1379 合并队伍
- 厦大C语言上机 1485 成绩排序
- 厦大C语言上机 1502 回文数猜想
- 厦大C语言上机 1358 小明的考题3――必杀技
- 厦大C语言上机 1371 九九乘法表
- 厦大C语言上机 1381 不重叠子串数
- 厦大C语言上机 1486 第K高的人
- 厦大C语言上机 1497 简单编辑
- 厦大C语言上机 1503 字符串处理
- 厦大C语言上机 1359 四则运算器
- 厦大C语言上机 1372 奇偶求和计算
- 厦大C语言上机 1382 小明的生词本
- 厦大C语言上机 1504 整数编号
- 厦大C语言上机 1361 分数约简