python 输入两个正整数(大于1并且在int的表示范围内),分别计算它们所有因数之和(除了自身之外的因数,并判断它们是否是一对相亲数
时间: 2024-05-14 11:19:54 浏览: 54
以下是代码实现:
```python
def factor_sum(num):
# 计算一个数的所有因数之和
factors = [1]
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
factors.append(i)
if i != num // i:
factors.append(num // i)
return sum(factors)
def is_amicable(num1, num2):
# 判断两个数是否是相亲数
sum1 = factor_sum(num1)
sum2 = factor_sum(num2)
if sum1 == num2 and sum2 == num1:
return True
else:
return False
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
if num1 <= 1 or num2 <= 1:
print("输入的数字必须大于1!")
else:
sum1 = factor_sum(num1)
sum2 = factor_sum(num2)
print("第一个数的因数之和为:", sum1)
print("第二个数的因数之和为:", sum2)
if is_amicable(num1, num2):
print("这是一对相亲数!")
else:
print("这不是一对相亲数。")
```
输出示例:
```
请输入第一个正整数:220
请输入第二个正整数:284
第一个数的因数之和为: 284
第二个数的因数之和为: 220
这是一对相亲数!
```
阅读全文