python求亲密数
时间: 2024-10-03 18:04:36 浏览: 38
Python中计算两个整数之间的“亲密数”通常是指两数之和等于这两个数乘积的因子个数。例如,68和85的因子分别是(1, 2, 4, 17, 34, 68)和(1, 5, 17, 85),它们的因子个数相等,所以68和85是一对亲密数。
下面是一个简单的Python函数,用于查找给定范围内的亲密数对:
```python
def find_cousin_pairs(start, end):
def count_factors(n):
factors = []
i = 1
while i * i <= n:
if n % i == 0:
factors.append(i)
if i != n // i: # 如果n不是完全平方数,添加另一个因子
factors.append(n // i)
i += 1
return len(factors)
cousin_pairs = []
for num in range(start, end + 1):
partner = (num * (end - start) + start) // num # 根据因子个数公式推导出可能的伙伴
if partner > start and count_factors(num) == count_factors(partner):
cousin_pairs.append((num, partner))
return cousin_pairs
# 示例
pairs = find_cousin_pairs(1, 100)
print("在1到100范围内找到的亲密数对:", pairs)
```
这个函数首先定义了一个辅助函数`count_factors`用于计算一个数的因子个数,然后遍历指定范围内的每个数,找出符合条件的亲密数对并返回。
阅读全文