【问题描述】 求整数n以内(含n)的全部亲密数。 说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,A不等于B,则将正整数A和B称为亲密数。 1不和其他数形成亲密数。 编写函数sumElem(),实现统计一个数字的因子之和(包括1,不包括A本身) 【输入形式】 输入整数n 【输出形式】 每一行输出一对亲密数,中间用一个空格隔开。 每一对亲密数只输出一次,小的在前。 各对亲密数按序排序,按亲密数中小的那个数从小到大排序
时间: 2023-10-18 22:06:57 浏览: 161
编制具有如下原型的函数prime,用来判断整数n是否为素数:bool prime(int n);而后编制主函数,任意输入一个大于4的偶数d,找出满足d=d1+d2的所有数对,其中要求d1与d2均为素数。
5星 · 资源好评率100%
以下是Python实现代码:
```python
def sumElem(n):
# 统计一个数字n的因子之和
sum = 1
for i in range(2, int(n**0.5)+1):
if n % i == 0:
sum += i
if i != n // i:
sum += n // i
return sum
n = int(input())
lst = []
for i in range(2, n+1):
j = sumElem(i)
if i < j and sumElem(j) == i:
lst.append((i, j))
lst.sort()
for i, j in lst:
print(i, j)
```
首先定义了一个函数 `sumElem`,用于统计一个数字的因子之和。然后从2到n遍历每个数字,分别求出它的因子之和,再判断是否与另一个数的因子之和相等,如果满足亲密数的条件,就加入到一个列表中。最后按照要求排序并输出即可。
阅读全文