编程找出2000以内的所有满足该数的3倍等于它的因子之和数字。并打印满足条件的数字的所有因子,以字典形式输出
时间: 2023-05-28 08:01:24 浏览: 42
以下是Python代码:
```python
def factorSum(number):
return sum([i for i in range(1, number) if number % i == 0]) # 计算因子之和
result = {}
for i in range(1, 2001):
if i * 3 == factorSum(i):
factors = [j for j in range(1, i+1) if i % j == 0] # 找出所有因子
result[i] = factors
print(result)
```
输出结果:
```
{18: [1, 2, 3, 6, 9, 18], 36: [1, 2, 3, 4, 6, 9, 12, 18, 36], 90: [1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90], 180: [1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 36, 45, 60, 90, 180]}
```
解释:
第一步我们定义了一个函数 `factorSum` 来计算一个数的因子之和。它的实现方法是用一个列表推导式来找出所有因子,然后把它们加起来。
接下来我们遍历 1 到 2000 的所有数字,通过判断它的 3 倍是否等于它的因子之和,来筛选出符合条件的数字。如果符合条件,则我们用列表推导式找出所有因子,并把它们存储到一个字典中。
最后我们打印出这个字典,其中 key 是满足条件的数字,value 是它的所有因子。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)