寻找完数。【哈工程计算思维课程组】 【哈工程计算思维课程组】完数是指一个整数怡好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若 m>n,则交换两数。
时间: 2024-10-02 09:01:47 浏览: 40
寻找完数的过程通常涉及到遍历一定范围内的数字,检查每个数是否满足完数条件。对于给定的正整数m和n(这里假设m和n都小于或等于9999),按照题目描述,我们首先会比较它们的大小,然后对较小的那个数(如果m大于n,则取n;反之取m)执行以下步骤:
1. 遍历从1到该数的所有因子,包括1但不包括它本身。
2. 对每个因子i,检查它们相乘的结果是否等于原始的数。如果是,说明找到了一个因子对(i和原数/i),将它们加起来。
3. 检查因子对的和是否等于原始的数。如果等,那么该数就是完数。
这个过程可以用循环结构完成,例如在Python中可以这样做:
```python
def isPerfectNumber(num):
if num <= 1:
return False
sum_of_factors = 1
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
sum_of_factors += i
if i != num // i:
sum_of_factors += num // i
return sum_of_factors == num
m, n = map(int, input("请输入两个正整数 (m > n): ").split())
if m > n:
m, n = n, m
for num in [m, n]:
if isPerfectNumber(num):
print(f"{num} 是一个完数")
```
阅读全文