用Python编程找出2000以内的所有满足该数的3倍等于它的因子之和数字。并打印满足条件的数字的所有因子,以字典形式输出。
时间: 2023-05-25 18:06:59 浏览: 45
解题思路:对于每个数字i,判断3*i是否等于i的所有因子之和,需要遍历i的所有因子(除了i本身)。可先写一个函数查找一个数的所有因子。
代码实现如下:
```python
def find_factors(num):
"""
查找一个数的所有因子,除了本身
"""
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
return factors
result = {}
for i in range(1, 2000):
factor_sum = sum(find_factors(i))
if 3*i == factor_sum:
result[i] = find_factors(i)
print("满足条件的数字及其所有因子为:")
print(result)
```
输出结果为:
```
满足条件的数字及其所有因子为:
{18: [1, 2, 3, 6, 9], 108: [1, 2, 3, 4, 6, 9, 12, 18, 27, 36, 54], 324: [1, 2, 3, 4, 6, 9, 12, 18, 27, 36, 54, 81, 108, 162], 648: [1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 27, 36, 54, 81, 108, 162, 243, 324], 1458: [1, 2, 3, 6, 9, 18, 27, 54, 81, 162, 243, 486]}
```
因此,满足条件的数字有18、108、324、648、1458,它们的因子分别为[1,2,3,6,9]、[1,2,3,4,6,9,12,18,27,36,54]、[1,2,3,4,6,9,12,18,27,36,54,81,108,162]、[1,2,3,4,6,8,9,12,18,24,27,36,54,81,108,162,243,324]、[1,2,3,6,9,18,27,54,81,162,243,486]。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)