python输入两个正整数,输出两个数的公约数的个数,每个数用一个input输入
时间: 2024-05-04 15:18:56 浏览: 105
好的,可以使用以下代码实现:
```python
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
# 计算两个数的公约数个数
count = 0
for i in range(1, min(num1, num2)+1):
if num1 % i == 0 and num2 % i == 0:
count += 1
print("两个数的公约数个数为:", count)
```
首先使用 `input` 函数分别获取两个正整数,然后使用 `for` 循环遍历 1 到两个数中较小的那个数,如果这个数既是 num1 的因数,又是 num2 的因数,那么它就是两个数的公约数,计数器 count 就加 1。最后输出结果即可。
相关问题
输入两个正整数a,b,输出他们公约数的个数Python
可以使用辗转相除法求出a和b的最大公约数,然后再求出最大公约数的因数个数即可。
这里给出一个简单的Python代码实现:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def get_divisor_count(n):
count = 0
for i in range(1, int(n**0.5)+1):
if n % i == 0:
count += 2 if i != n // i else 1
return count
a, b = map(int, input().split())
g = gcd(a, b)
count = get_divisor_count(g)
print(count)
```
首先定义了一个求最大公约数的函数gcd,然后定义了一个求因数个数的函数get_divisor_count,该函数使用了一种常用的求因数个数的方法:枚举1到根号n之间的整数,如果n能被i整除,则n/i也是n的因数,因此总的因数个数加2。需要注意的是,如果i等于n/i,则只计算一次。
最后读入a和b,求出它们的最大公约数g,再用g调用get_divisor_count函数求出因数个数并输出即可。
输入两个正整数a,b,输出他们公约数的个数Python
你可以使用以下代码实现:
```python
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
a = int(input("请输入第一个正整数a: "))
b = int(input("请输入第二个正整数b: "))
common_divisors = []
for i in range(1, gcd(a, b)+1):
if a % i == 0 and b % i == 0:
common_divisors.append(i)
print("公约数个数为: ", len(common_divisors))
```
首先定义了一个gcd函数,用于求两个数的最大公约数。接下来通过循环找出a和b的所有公约数,并将其存入一个列表中,最后输出列表长度即为公约数个数。
阅读全文