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
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
Để 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à:
Đầ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ả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.
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |