Vận dụngCâu 1.Viết hàm có hai tham số đầu vào là m, n. Đầu ra trả lại hai giá trị là:ƯCLN của...
Câu hỏi:
Vận dụng
Câu 1. Viết hàm có hai tham số đầu vào là m, n. Đầu ra trả lại hai giá trị là:
- ƯCLN của m, n,
- Bội chung nhỏ nhất (BCNN) của m, n.
Câu trả lời:
Người trả lời: GV. Đỗ Thị Ánh
Cách 1:Để giải bài toán trên, ta cần tìm Ước chung lớn nhất (ƯCLN) và Bội chung nhỏ nhất (BCNN) của hai số m và n. Bước 1: Viết hàm để tính ƯCLN của hai số:```pythondef UCLN(m, n): while n != 0: m, n = n, m % n return m```Bước 2: Viết hàm để tính BCNN của hai số:```pythondef BCNN(m, n): return (m * n) // UCLN(m, n)```Bước 3: Gọi hàm trên để tính ƯCLN và BCNN của hai số m và n:```pythonm = 12n = 18ucln = UCLN(m, n)bcnn = BCNN(m, n)print(f"ƯCLN của {m} và {n} là: {ucln}")print(f"Bội chung nhỏ nhất của {m} và {n} là: {bcnn}")```Kết quả:ƯCLN của 12 và 18 là: 6Bội chung nhỏ nhất của 12 và 18 là: 36Cách 2:Cách giải này sử dụng thư viện math của Python để tính ƯCLN của m và n, sau đó dễ dàng tính BCNN bằng cách sử dụng công thức BCNN = (m * n) / ƯCLN(m, n).```pythonimport mathdef ucln(m, n): return math.gcd(m, n)m = 12n = 18bcnn = (m * n) // ucln(m, n)print(f"ƯCLN của {m} và {n} là: {ucln(m, n)}")print(f"Bội chung nhỏ nhất của {m} và {n} là: {bcnn}")```Kết quả:ƯCLN của 12 và 18 là: 6Bội chung nhỏ nhất của 12 và 18 là: 36Câu trả lời cho câu hỏi trên: Với hai cách giải trên, ta có thể viết hàm để tính ƯCLN và BCNN của hai số m và n. Cách 1 sử dụng phương pháp Euclid để tính ƯCLN, còn cách 2 sử dụng thư viện math của Python. Cả hai cách đều cho kết quả chính xác và đáp ứng yêu cầu của bài toán.
Câu hỏi liên quan:
Sử dụng công thức BCNN = m * n / ƯCLN(m, n) để tính BCNN của m, n.
Để viết hàm tính BCNN của m, n:
Sử dụng thuật toán Euclid để tìm ƯCLN của m, n.
Để viết hàm tính ƯCLN của m, n: