【问题描述】从键盘上输入两个整数,求这两个数的最大公约数和最小公倍数。
【输入形式】使用input()函数分别输入两个整数。
【输出形式】使用print()函数输出最大公约数和最小公倍数。
【样例输入】分行输入两个整数
165
35
【样例输出】第一行输出最大公约数,第二行输出最小公倍数。
5
1155
完整代码如下:
a=eval(input())
b=eval(input())
c=[]
d=[]
for i in range(0,a+1):
for j in range(0,a+1):
for i in range(0,b+1):
for k in range(0,b+1):
if i*j==a and i*k==b:
c.append(i)
else:
continue
if a<b:
a,b=b,a
for l in range(0,a+1):
for m in range(0,a+1):
e=a*l
f=b*m
if e==f:
d.append(e)
else:
continue
d.sort()
c.sort()
print(c[-1])
print(d[1])
代码解释:
“a=eval(input())
b=eval(input())
c=[]
d=[] ”,输入需要求最大公约数和最小公倍数的两个数。
“for i in range(0,a+1):
for j in range(0,a+1):
for i in range(0,b+1):
for k in range(0,b+1):
if i*j==a and i*k==b:
c.append(i)
else:
continue ”,求0到a范围内能与0到b范围内的数组成公约数的数,并将其存入列表c中。
“if a<b:
a,b=b,a
for l in range(0,a+1):
for m in range(0,a+1):
e=a*l
f=b*m
if e==f:
d.append(e)
else:
continue ”,保证a大于或等于b,查找0到a方内a与b的公倍数,并将其存入列表d中。
“ d.sort()
c.sort()
print(c[-1])
print(d[1]) ”,将列表c,d内的数进行排序(从小到大),打印最大公约数和除0的最小公倍数(d[0]==0)。
运行效果展示:
(声明:以上内容均为原创)