Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương).

Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). Cô giáo muốn cắt tấm bia này thành những hình vuông bằng nhau có độ dài cạnh là số nguyên (đơn vị cm) sao cho tấm bìa được cắt hết không còn thừa mảnh nào.

Yêu cầu: Cô giáo cho trước tấm bìa, em hãy xác định số hình vuông ít nhất có thể cắt được.

Dữ liệu: Nhập từ thiết bị vào chuẩn, gồm hai dòng:

• Dòng thứ nhất chứa số nguyên dương (x<10).

• Dòng thứ hai chứa số nguyên dương y (<10).

Kết quả: Hiển thị ở thiết bị ra chuẩn số lượng hình vuông theo yêu cầu.

Vi du:

Input

15

Output

Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). (ảnh 1)

Trả lời

Để cắt hết tấm bìa mà không còn thừa mảnh nào thì kích thước cạnh d của hình vuông được cắt ra là ước số của x và y (x : d và y : d).

- Số lượng hình vuông ít nhất thì d phải lớn nhất, tức là: d = ƯCLN (x, y).

- Vậy kết quả của bài toán là: Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). (ảnh 2)

Đầu vào: Hai số nguyên x, y.

Đầu ra: Số lượng hình vuông thoả mãn.

Thuật toán thô: Tìm giá trị max{d | x : d; y : d).

– Lặp khi min(x,y)>d>1:

Nếu phát hiện x chia hết cho d và y chia hết cho d thì kết quả bài toán là: Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). (ảnh 1)

Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). (ảnh 2)

Cải tiến:

Nhận xét: Giá trị của d chính là ước số chung lớn nhất của x và y, có thể dùng hàm có sẵn tìm ước chung lớn nhất để chương trình chạy nhanh hơn.

Cô giáo có một tấm bìa hình chữ nhật có các kích thước là x (cm) và v (cm), (v, y là số nguyên dương). (ảnh 3)

Câu hỏi cùng chủ đề

Xem tất cả