|
|
发表于 2020-5-10 12:28:57
|
显示全部楼层
本楼为最佳答案
本帖最后由 skyddy 于 2020-5-24 19:06 编辑
不能为5吧 b和c表示因子的和 每次大循环因子的和要置为0 重新计算的
我写的烂方法
- int a, b;
- int divide;
- int sum;
- for (a = 6; a <= 5000; ++a) {
- sum = 0;
- for (int j = 1; j <= sqrt(a); ++j) {
- if (a % j == 0) {
- if (j != 1) {
- divide = a / j;
- } else {
- divide = 0;
- }
- sum += (j + divide);
- }
- }
- b = sum;
- sum = 0;
- for (int k = 1; k <= sqrt(b); ++k) {
- if (b % k == 0) {
- if (k != 1) {
- divide = b / k;
- } else {
- divide = 0;
- }
- sum += (k + divide);
- }
- }
- if (sum == a && a != b) {
- printf("%6d,%6d\n", a, b);
- }
- }
- return 0;
复制代码 |
|