用python求不同约数对用户输入的两个正整数,求这两个正整数的所有不同约数。例如,正整数 6 的约数有 1、2、3、6,正整数 8 的约数有 1、2、4、8,正整数 6 和 8 的不同 约数为 3、4、6、8。
时间: 2024-09-29 22:10:23 浏览: 35
在Python中,我们可以使用列表推导式和数学库`math`来找出两个正整数的所有不同约数。首先,我们需要编写一个函数来检查一个数的所有约数,然后我们遍历两个输入的正整数,找出它们各自的约数,并从中找出那些相同的和不同的部分。
以下是一个简单的示例:
```python
def find_divisors(n):
# 使用列表推导式获取小于等于n的所有因子
divisors = [i for i in range(1, int(math.sqrt(n)) + 1) if n % i == 0]
# 添加n本身作为另一个约数,因为每个自然数都是它自身的因子
divisors.append(n)
return divisors
def find_distinct_divisors(num1, num2):
# 找出两个数各自的所有约数
divisors_num1 = find_divisors(num1)
divisors_num2 = find_divisors(num2)
# 使用集合去重并找出不同约数
distinct_divisors = list(set(divisors_num1 + divisors_num2))
return distinct_divisors
# 用户输入
num1 = int(input("请输入第一个正整数: "))
num2 = int(input("请输入第二个正整数: "))
distinct_divisors = find_distinct_divisors(num1, num2)
print(f"数字 {num1} 和 {num2} 的不同约数为: ", distinct_divisors)
```
当你运行这个程序,它会提示用户输入两个正整数,然后显示它们之间的所有不同约数。
阅读全文