Viết hàm số có hai tham số đầu vào là m,n đầu ra trả lại hai giá trị -ƯCLN của m , n -Bội chung nhỏ nhất (BCNN) của m , n sử  dụng công thức ƯCLN(m,n) x BCNN(m,n) = m x n

Viết hàm số có hai tham số đầu vào là m,n đầu ra trả lại hai giá trị -ƯCLN của m , n -Bội chung nhỏ nhất (BCNN) của m , n sử  dụng công thức ƯCLN(m,n) x BCNN(m,n) = m x n
This anwser using AI, please
Để viết hàm số có hai tham số đầu vào là m và n, và đầu ra trả lại hai giá trị là ước chung lớn nhất (ƯCLN) và bội chung nhỏ nhất (BCNN), ta có thể làm theo các bước sau:

1. Tính ƯCLN (m, n): Để tính ƯCLN, ta có thể sử dụng thuật toán Euclid, rất hiệu quả trong việc tìm ƯCLN của hai số.

2. Tính BCNN (m, n): Dựa vào công thức đã cho: ƯCLN(m,n) x BCNN(m,n) = m x n, ta có thể tính BCNN dựa trên ƯCLN:

BCNN(m, n) = (m * n) / ƯCLN(m, n)

3. Viết hàm: Hàm sẽ nhận hai tham số m và n, sử dụng thuật toán để tính ƯCLN và từ đó tính BCNN rồi trả về cả hai giá trị.

Dưới đây là mã nguồn của hàm số trong Python:

```python
def UCLN_BCNN(m, n):
# Tính ƯCLN sử dụng thuật toán Euclid
def ucln(a, b):
while b != 0:
a, b = b, a % b
return a

# Tính ƯCLN của m, n
ucln_value = ucln(m, n)

# Tính BCNN theo công thức
bcnn_value = (m * n) // ucln_value

return ucln_value, bcnn_value

# Ví dụ sử dụng hàm
m = 12
n = 15
result = UCLN_BCNN(m, n)
print("ƯCLN:", result[0], "BCNN:", result[1])
```

Giải thích:

- Hàm `UCLN_BCNN` nhận vào hai số nguyên `m` và `n`.
- Bên trong hàm, có một hàm phụ `ucln` dùng để tính ƯCLN của `a` và `b` bằng cách sử dụng thuật toán Euclid. Thuật toán này lặp lại phép chia lấy dư cho đến khi b trở thành 0, lúc đó a chính là ƯCLN.
- Sau khi đã có ƯCLN, ta tính BCNN bằng công thức đã cho: BCNN(m, n) = (m * n) / ƯCLN(m, n).
- Cuối cùng, hàm `UCLN_BCNN` trả về một tuple chứa hai giá trị ƯCLN và BCNN.

Khi gọi hàm với các số 12 và 15, kết quả trả về sẽ là ƯCLN là 3 và BCNN là 60, điều này khớp với các phép toán đã thực hiện.
Post Reply