最大公约数、最小公倍数(函数版) 从键盘一次性接收两个整数,编写程序求这两个整数的最大公约数和最小公倍数。 最小公倍数的求法:a与b的原始值的乘积除以最大公约数。 最大公约数的方法——辗转相除法,流程图如下:
时间: 2024-05-05 14:15:58 浏览: 200
```flow
st=>start: 开始
input=>inputoutput: 输入a和b
cond=>condition: a%b是否为0?
op1=>operation: 交换a和b
op2=>operation: 计算r=a%b
op3=>operation: a=b,b=r
op4=>operation: 输出最大公约数
op5=>operation: 计算最小公倍数
op6=>operation: 输出最小公倍数
e=>end: 结束
st->input->cond
cond(yes)->op4->op5->op6->e
cond(no)->op1->op2->op3->cond
```
相关问题
最大公约数、最小公倍数(函数版) 从键盘一次性接收两个整数,编写程序求这两个整数的最大公约数和最小公倍数。 最小公倍数的求法:a与b的原始值的乘积除以最大公约数。 最大公约数的方法——辗转相除法,流程图如下:
```flow
st=>start: 开始
input=>inputoutput: 输入a,b
cond=>condition: a % b 是否为0?
op1=>operation: 交换a,b的值
op2=>operation: 计算r=a%b
op3=>operation: 将b赋值给a
op4=>operation: 将r赋值给b
end=>end: 结束
st->input->cond
cond(yes)->op1->cond
cond(no)->op2->op3->op4->cond
cond(no,right)->op2
op2->cond
cond(yes)->op2
op2->end
```
代码如下:
```python
def gcd(a,b):
if a<b:
a,b = b,a # 交换a,b的值,确保a>b
while b!=0:
r = a%b # 计算r=a%b
a = b # 将b赋值给a
b = r # 将r赋值给b
return a # 返回最大公约数
def lcm(a,b):
return a*b//gcd(a,b) # 返回最小公倍数
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print("最大公约数为:",gcd(a,b))
print("最小公倍数为:",lcm(a,b))
```
题] 最大公约数、最小公倍数(函数版) 从键盘一次性接收两个整数,编写程序求这两个整数的最大公约数和最小公倍数。 最小公倍数的求法:a与b的原始值的乘积除以最大公约数。 最大公约数的方法——辗转相除法,流程图如下:
```flow
st=>start: 开始
input=>inputoutput: 输入两个整数a,b
cond1=>condition: 若a<b则交换a,b
cond2=>condition: 若a%b==0,则b为最大公约数
op1=>operation: r=a%b
op2=>operation: a=b,b=r
back=>end: 输出结果
st->input->cond1->cond2
cond1(yes)->op1->op2->cond2
cond1(no)->op1->op2->cond2
cond2(yes)->back
cond2(no,right)->op1->op2->cond2
```
Python代码如下:
阅读全文