📅  最后修改于: 2023-12-03 15:07:35.132000             🧑  作者: Mango
这是 ISRO 2020 年度招聘计划中的第 75 道题目。该题目考查了对 Python 中用于整数操作的概念和函数的理解。下面是题目描述:
给定两个整数 A 和 B,编写一个程序,计算它们的 GCD 和 LCM。如果两个数之一为 0,则 GCD 和 LCM 都应该为 0。如果两个数都为 0,则返回 0。
def gcd(a, b):
"""
计算两个数的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
计算两个数的最小公倍数
"""
if a == 0 or b == 0:
return 0
else:
return abs(a * b) // gcd(a, b)
def main():
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
greatest_common_divisor = gcd(a, b)
least_common_multiple = lcm(a, b)
print("最大公约数为:", greatest_common_divisor)
print("最小公倍数为:", least_common_multiple)
if __name__ == '__main__':
main()
代码实现主要分为三个部分:
gcd
函数:求两个数的最大公约数,采用辗转相除法的思想递归实现,并返回最大公约数。lcm
函数:求两个数的最小公倍数,采用求两个数的积除以最大公约数的方法实现,并返回最小公倍数。main
函数:主函数,通过调用上述两个函数得到最大公约数和最小公倍数,并输出结果。程序首先要求用户输入两个整数,然后分别计算它们的最大公约数和最小公倍数,最后输出结果。
请输入第一个整数: 24
请输入第二个整数: 18
最大公约数为: 6
最小公倍数为: 72
这是 ISRO 2020 年度招聘计划中的第 75 道题目。该题目考查了对 Python 中用于整数操作的概念和函数的理解。下面是题目描述:
给定两个整数 A 和 B,编写一个程序,计算它们的 GCD 和 LCM。如果两个数之一为 0,则 GCD 和 LCM 都应该为 0。如果两个数都为 0,则返回 0。
def gcd(a, b):
"""
计算两个数的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
计算两个数的最小公倍数
"""
if a == 0 or b == 0:
return 0
else:
return abs(a * b) // gcd(a, b)
def main():
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
greatest_common_divisor = gcd(a, b)
least_common_multiple = lcm(a, b)
print("最大公约数为:", greatest_common_divisor)
print("最小公倍数为:", least_common_multiple)
if __name__ == '__main__':
main()
代码实现主要分为三个部分:
gcd
函数:求两个数的最大公约数,采用辗转相除法的思想递归实现,并返回最大公约数。lcm
函数:求两个数的最小公倍数,采用求两个数的积除以最大公约数的方法实现,并返回最小公倍数。main
函数:主函数,通过调用上述两个函数得到最大公约数和最小公倍数,并输出结果。程序首先要求用户输入两个整数,然后分别计算它们的最大公约数和最小公倍数,最后输出结果。
请输入第一个整数: 24
请输入第二个整数: 18
最大公约数为: 6
最小公倍数为: 72