Học Python - Bài 86 Viết hàm tìm UCLN
Giới Thiệu
Ước chung lớn nhất (UCLN) của hai số nguyên dương là số nguyên dương lớn nhất chia hết cho cả hai số đó. Bài viết này hướng dẫn hai cách viết một hàm Python để tìm UCLN của hai số nguyên dương: cách thông thường và cách tối ưu hóa sử dụng thư viện có sẵn.
Cách Thực Hiện
Cách 1: Sử dụng thuật toán Euclid (Cách thông thường)
def tim_ucln_thuong(a, b): while b != 0: a, b = b, a % b return a
Cách 2: Sử dụng thư viện math (Cách tối ưu hóa)
Python cung cấp hàm math.gcd() giúp tính UCLN nhanh chóng và tối ưu hơn.
import math def tim_ucln_toi_uu(a, b): return math.gcd(a, b) Chương Trình Hoàn Chỉnh import math def tim_ucln_thuong(a, b): while b != 0: a, b = b, a % b return a def tim_ucln_toi_uu(a, b): return math.gcd(a, b) # Nhập hai số nguyên dương a = int(input("Nhập số nguyên dương a: ")) b = int(input("Nhập số nguyên dương b: ")) # Kiểm tra và hiển thị kết quả if a > 0 and b > 0: print(f"UCLN theo cách thường của {a} và {b} là: {tim_ucln_thuong(a, b)}") print(f"UCLN theo cách tối ưu của {a} và {b} là: {tim_ucln_toi_uu(a, b)}") else: print("Vui lòng nhập hai số nguyên dương hợp lệ.")
Ví Dụ Chạy Chương Trình
Nhập số nguyên dương a: 56
Nhập số nguyên dương b: 98
UCLN theo cách thường của 56 và 98 là: 14
UCLN theo cách tối ưu của 56 và 98 là: 14
So Sánh Hai Cách
Phương pháp | Ưu điểm | Nhược điểm |
Thuật toán Euclid | Không cần thư viện ngoài, dễ hiểu | Hiệu suất chậm hơn khi dùng thư viện |
math.gcd() | Nhanh, tối ưu, tận dụng tối đa Python | Phụ thuộc vào thư viện math |
Kết Luận
Cả hai cách đều cho kết quả chính xác. Nếu bạn muốn hiểu rõ thuật toán, hãy sử dụng cách 1. Nếu muốn viết mã nhanh và tối ưu hơn, hãy sử dụng math.gcd(). Hy vọng bài viết hữu ích cho bạn!
2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án SỞ…
1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang có đáp…
Phần 1: Các bài tập dễ và cơ bản làm được các bài này các…
100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…
Bài 71: Đổi tất cả ký tự trong một chuỗi thành ký tự thường bằng…
Bài 26 - Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python…
This website uses cookies.