📌  相关文章
📜  QA – 安置测验|数字、LCM 和 HCF |问题 15(1)

📅  最后修改于: 2023-12-03 15:19:37.695000             🧑  作者: Mango

介绍

该题目是一个有关于数字、LCM和HCF的编程题目,需要编写一个程序计算给定数字列表的LCM和HCF。

LCM(最小公倍数)是指两个或多个整数公有的倍数中最小的那一个,而HCF(最大公约数)是指两个或多个整数公共约数中最大的一个。

题目描述

给定 n 个数字,计算它们的最小公倍数(LCM)和最大公约数(HCF)。

输入格式

第一行包含一个整数 n,表示数字的个数。

第二行包含 n 个整数,表示给定的数字列表。

输出格式

输出一行,包含 LCM 和 HCF,两个数字之间用一个空格分隔。

示例

输入:

6
4 6 8 10 12 14

输出:

840 2
解题思路

题目要求计算最小公倍数和最大公约数,可以使用另一个函数来实现计算最大公约数的功能。

对于给定的数字列表,我们可以将它们放入一个数组中,然后循环计算它们的最小公倍数和最大公约数。

代码实现
def gcd(a, b):
    # 计算最大公约数
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

def lcm(a, b):
    # 计算最小公倍数
    return (a * b) // gcd(a, b)

def find_lcm_hcf(n, nums):
    # 循环计算最小公倍数和最大公约数
    lcm_num = nums[0]
    hcf_num = nums[0]
    for i in range(1, n):
        lcm_num = lcm(lcm_num, nums[i])
        hcf_num = gcd(hcf_num, nums[i])
    print(lcm_num, hcf_num)

# 测试代码
n = 6
nums = [4, 6, 8, 10, 12, 14]
find_lcm_hcf(n, nums)

代码片段返回markdown格式如下:

```python
def gcd(a, b):
    # 计算最大公约数
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

def lcm(a, b):
    # 计算最小公倍数
    return (a * b) // gcd(a, b)

def find_lcm_hcf(n, nums):
    # 循环计算最小公倍数和最大公约数
    lcm_num = nums[0]
    hcf_num = nums[0]
    for i in range(1, n):
        lcm_num = lcm(lcm_num, nums[i])
        hcf_num = gcd(hcf_num, nums[i])
    print(lcm_num, hcf_num)

# 测试代码
n = 6
nums = [4, 6, 8, 10, 12, 14]
find_lcm_hcf(n, nums)