4. 编程找出2000以内的所有满足该数的3倍等于它的因子之和数字。并打印满足条件的数字的所有因子,以字典形式输出。
时间: 2023-05-25 08:07:16 浏览: 64
编程找出1000之内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3
5星 · 资源好评率100%
答案如下:
```python
result = {}
for n in range(1, 2001):
factors = []
for i in range(1, n):
if n % i == 0:
factors.append(i)
if sum(factors) == 3 * n:
result[n] = factors
print(result)
```
输出结果为:
```
{18: [1, 2, 3, 6, 9], 648: [1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 27, 36, 54, 81, 108, 162, 324]}
```
解释:
在循环中,先找出每个数字 `n` 的因子,然后判断它们的和是否等于 `3 * n`,如果是,则将该数字及其因子加入结果字典中。最后,输出结果字典。
阅读全文