用python实现1)随机生成两个介于100和2000之间的整数,通过穷举法分别求出两个整数的所有因数,将分解的结果分别存储在两个集合中,并输出这两个集合;(2)根据整数的分解结果,判断两个整数中是否有素数,输出这个素数;(3)求出两个整数所有的公因数,并输出结果;(4)求出两个整数的最大公因数,如果两个整数是互素的,输出两个整数互素的结论。
时间: 2023-04-08 18:01:43 浏览: 148
以下是我的回答:
(1) 生成两个介于100和2000之间的整数,穷举法分别求出两个整数的所有因数,并将分解的结果分别存储在两个集合中,输出这两个集合:
```python
import random
# 生成两个介于100和2000之间的整数
num1 = random.randint(100, 2000)
num2 = random.randint(100, 2000)
# 分别求出两个整数的所有因数,并将分解的结果分别存储在两个集合中
factors1 = set()
factors2 = set()
for i in range(1, num1+1):
if num1 % i == 0:
factors1.add(i)
for i in range(1, num2+1):
if num2 % i == 0:
factors2.add(i)
# 输出这两个集合
print("num1的因数集合为:", factors1)
print("num2的因数集合为:", factors2)
```
(2) 根据整数的分解结果,判断两个整数中是否有素数,输出这个素数:
```python
# 判断两个整数中是否有素数,输出这个素数
prime_num = set()
for i in factors1:
if i > 1:
for j in range(2, i):
if i % j == 0:
break
else:
prime_num.add(i)
for i in factors2:
if i > 1:
for j in range(2, i):
if i % j == 0:
break
else:
prime_num.add(i)
if len(prime_num) > 0:
print("这两个整数中有素数,它们是:", prime_num)
else:
print("这两个整数中没有素数")
```
(3) 求出两个整数所有的公因数,并输出结果:
```python
# 求出两个整数所有的公因数,并输出结果
common_factors = factors1 & factors2
print("这两个整数的公因数集合为:", common_factors)
```
(4) 求出两个整数的最大公因数,如果两个整数是互素的,输出两个整数互素的结论:
```python
# 求出两个整数的最大公因数,如果两个整数是互素的,输出两个整数互素的结论
gcd = max(common_factors)
if gcd == 1:
print("这两个整数互素")
else:
print("这两个整数的最大公因数为:", gcd)
```
阅读全文