IMG-LOGO

Câu hỏi:

22/07/2024 75

Tìm ước chung lớn nhất

Viết chương trình nhập vào hai số tự nhiên a, b không đồng thời bằng 0 và in ra ước số chung lớn nhất của a, b.

 Xem lời giải

Trả lời:

verified Giải bởi Vietjack

Ước chung lớn nhất (GCD — Greatest Common Divisor) là một khái niệm quan trọng trong số học và nhiều lĩnh vực khác. Mục đích của bài toán là tìm số nguyên Z lớn nhất đồng thời là ước số của cả ab.

Một cách tiếp cận đơn giản là khi b > 0 ta có thể thử tất cả các giá trị số nguyên d = b, b - 1, b - 2, ..., 1 và dừng lại ngay khi gặp số nguyên d là ước số của cả ab. Còn tất nhiên khi b == 0, ước số chung lớn nhất của ab chính là a

Tìm ước chung lớn nhất Viết chương trình nhập vào hai số tự nhiên a, b  (ảnh 1)

Phương pháp này tuy đúng nhưng có hiệu suất rất kém. Một phương pháp khác hiệu quả hơn là thuật toán Euclid (được nhà toán học người Hy Lạp đưa ra vào khoảng thế kỉ III trước công nguyên). Thuật toán Euclid như sau:

Lặp cho đến khi b ≠ 0

          + Tính r là số dư của phép chia a cho b.

          + Thay cặp số (a, b) bởi cặp số (b, r).

- Kết thúc: Giá trị a sau vòng lặp là ước chung lớn nhất của hai số ban đầu. Tham khảo chương trình sau:

Tìm ước chung lớn nhất Viết chương trình nhập vào hai số tự nhiên a, b  (ảnh 2)

Câu trả lời này có hữu ích không?

0

Gói VIP thi online tại VietJack (chỉ 400k/1 năm học), luyện tập gần 1 triệu câu hỏi có đáp án chi tiết

ĐĂNG KÝ VIP

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

In ra các số lẻ

Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương lẻ không lớn hơn n theo thứ tự tăng dần.

Xem đáp án » 09/10/2022 161

Câu 2:

Liệt kê ước số

Viết chương trình nhập vào một số nguyên dương n và in ra tất cả các ước số của n.

Xem đáp án » 09/10/2022 122

Câu 3:

In ra tổng các số chỉ chia hết cho 3 hoặc 5

Viết chương trình đưa ra màn hình tổng các số nguyên chỉ chia hết cho 3 hoặc 5 nhưng không đồng thời chia hết cho cả 3 và 5 trong phạm vi các số nguyên từ m đến n-1. Ngừng tính tổng khi nhận được tổng lớn hơn hoặc bằng b cho trước. Các số nguyên m, n, b được nhập vào từ bàn phím với m < n.

Xem đáp án » 09/10/2022 112

Câu 4:

Tổng chữ số

Viết chương trình nhập vào số nguyên dương n và in ra tổng các chữ số trong biểu diễn thập phân của n.

Xem đáp án » 09/10/2022 95

Câu 5:

In ra tổng các số chia hết cho 3 hoặc chia hết cho 5

Với n nhập từ bàn phím, viết chương trình đưa ra màn hình tổng các số tự nhiên nhỏ hơn n và chia hết cho 3 hoặc chia hết cho 5.

Xem đáp án » 09/10/2022 90

Câu 6:

Tính giai thừa

Viết chương trình nhập vào một số nguyên dương n và in ra giá trị giai thừa của n.

Xem đáp án » 09/10/2022 86

Câu 7:

In ra các số chẵn

Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương chẵn không lớn hơn n theo thứ tự giảm dần.

Xem đáp án » 09/10/2022 76

Câu 8:

Đọc hiểu chương trình

Virus X có khả năng lây nhiễm mạnh, sau mỗi ngày số lượng người nhiễm tăng lên gấp đôi. Cụ thể, nếu ngày hôm nay có p người bị nhiễm thì sang ngày tiếp theo sẽ có 2p người bị nhiễm. Chương trình sau đây cho nhập vào số lượng người bị nhiễm và đưa ra sau bao nhiêu ngày thì số lượng người bị nhiễm sẽ vượt quá 1 triệu người. Em hãy hoàn thiện câu lệnh còn khuyết để nhận được chương trình đúng.

Đọc hiểu chương trình Virus X có khả năng lây nhiễm mạnh, sau mỗi ngày (ảnh 1)

Xem đáp án » 09/10/2022 71

Câu 9:

Tìm lỗi cho cấu trúc lặp

Chương trình ở hình bên nhập vào hai số thực dương a, b với a < b và tính tổng tất cả các số nguyên không nhỏ hơn a và không lớn hơn b. Tuy nhiên, chương trình vẫn có lỗi. Chạy chương trình với a = 1,1 và b = 3,9 để thấy lỗi của chương trình. Em hãy tìm và sửa lỗi để nhận được chương trình đúng.

Tìm lỗi cho cấu trúc lặp Chương trình ở hình bên nhập vào hai số thực dương a, b  (ảnh 1)

Xem đáp án » 09/10/2022 65

Câu hỏi mới nhất

Xem thêm »
Xem thêm »