求99的最大真约数,用python编写程序
时间: 2023-07-12 22:31:17 浏览: 140
可以使用以下代码来求99的最大真约数:
```python
def max_divisor(n):
"""
求n的最大真约数
"""
i = n - 1
while i > 1:
if n % i == 0:
return i
i -= 1
return 1
print(max_divisor(99)) # 输出:33
```
解释一下代码逻辑,首先从n-1开始倒序循环,判断i是否是n的因数,如果是,则i就是n的最大真约数,返回i;如果i不是n的因数,则继续向下循环。如果循环结束仍然没有找到n的真约数,则n的最大真约数为1。
相关问题
下列程序的作用是求两个正整数m,n的最大公约数 用python编写程序
以下是求两个正整数m,n的最大公约数的Python程序:
```
def gcd(m, n):
if n == 0:
return m
else:
return gcd(n, m % n)
```
其中,利用了辗转相除法求最大公约数的思想。在每一轮操作中,将较大数对较小数取模,直到其中一个数为0,此时另一个数即为最大公约数。
最大公约数计算。从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:求最大公约数可用辗转相除法,求最小公倍数则用两数的积除以最大公约数即可)。用python编写程序并写出程序思路
非常感谢您对我的信任。接下来,我将为您提供答案,首先是程序思路:
1. 从键盘输入两个整数。
2. 根据辗转相除法,求出这两个数的最大公约数。
3. 最小公倍数可用两数的积除以最大公约数计算得出。
4. 输出结果。
下面是用 Python 编写的程序:
```python
# 接收用户输入
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
# 辗转相除法求最大公约数
def gcd(a, b):
while b:
a, b = b, a % b
return a
# 两数的积除以最大公约数可得最小公倍数
lcm = num1 * num2 // gcd(num1, num2)
# 输出结果
print("{}和{}的最大公约数为{},最小公倍数为{}".format(num1, num2, gcd(num1, num2), lcm))
```
希望我的回答能够帮助到您,如有其它问题,欢迎随时向我提问!
阅读全文