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!
Bạn đang tìm kiếm nguồn tài liệu ôn thi học sinh giỏi Tin học lớp…
Phần 2: Tải ngay 200 Bài lập trình Python có lời giải cơ bản đến…
Tổng Hợp Các Hàm Python "Cốt Lõi" Khi Thi HSG Tỉnh Và Vào 10 Chuyên…
Nếu bạn đang ôn thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang,…
Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp…
Tổng hợp 75 Đề thi HSG Tin học THCS Python Cấp Tỉnh (Có Code Giải…
This website uses cookies.