Bài tập F79: Hoàn thiện chương trình
Chương trình ở hình sau thực hiện nhập từ thiết bị vào chuẩn một danh sách số nguyên A = (a$_{1}$, a$_{2}$, …, a$_{n}$); Các số ghi trên cùng một dòng, mỗi số cách nhau một dấu cách. Tính và đưa ra thiết bị ra chuẩn các giá trị b$_{1}$, b$_{2}$, …, b$_{n}$, trong đó b$_{i}$, (với i từ 1 đến n) là ước số chung lớn nhất của các số a$_{1}$, a$_{2}$, …, a$_{i}$. Các số đưa ra trên một dòng, cách nhau một dấu cách. Tuy nhiên chương trình vẫn có lỗi, em hãy tìm lỗi và nêu các phương pháp khắc phục các lỗi đó.
Bài Làm:
Câu lệnh sai: b[i] = gcd(b[i-1], a[i]).
Chưa nêu rõ gcd ở thư viện nào. Trường hợp này có hai cách sửa:
Cách 1. Sửa câu lệnh sai thành: b[i] = math.gcd(b[i-1],a[i]).
Cách 2. Chỉ rõ nạp gcd từ thư viện math bằng cách viết lại câu lệnh đầu tiên như sau: from math import gcd.