trang chủ / đề bài / buytvset

Mua TV

Đề bài

Mô tả

Monocarp muốn mua một chiếc TV mới và treo lên tường. Khoảng trống trên tường cho phép màn hình có chiều rộng không vượt quá a và chiều cao không vượt quá b.

Ngoài ra Monocarp chỉ thích các màn hình có đúng một tỉ lệ khung hình cho trước: nếu màn hình rộng w và cao h thì phải thoả mãn

wh=xy.

Trong cửa hàng có sẵn TV với mọi kích thước (w,h) là cặp số nguyên dương, nên Monocarp chỉ cần đếm xem có bao nhiêu lựa chọn hợp lệ. Hai chiếc TV được coi là khác nhau nếu chúng khác nhau về chiều rộng hoặc khác nhau về chiều cao.

Hãy đếm số cặp số nguyên dương (w,h) thoả mãn w≤a, h≤b và wh=xy.

Lưu ý rằng phân số xy trong dữ liệu vào không nhất thiết đã ở dạng tối giản.

Dữ liệu vào

Một dòng duy nhất chứa bốn số nguyên a, b, x, y: giới hạn chiều rộng, giới hạn chiều cao, và tỉ lệ khung hình mong muốn.

Dữ liệu ra

In ra một số nguyên duy nhất: số cách chọn kích thước màn hình thoả mãn các điều kiện trên.

Ràng buộc

  • 1≤a,b,x,y≤1018

Ví dụ

Input Output Giải thích
17 15 5 3 3 Tỉ lệ 5/3 đã tối giản. Ba lựa chọn hợp lệ là (5,3), (10,6), (15,9). Cặp (20,12) bị loại vì 20>17.
14 16 7 22 0 Màn hình nhỏ nhất có tỉ lệ 7/22 là (7,22), nhưng 22>16 nên không có lựa chọn nào.
4 2 6 4 1 Tỉ lệ 6/4 rút gọn thành 3/2, nên màn hình nhỏ nhất là (3,2) chứ không phải (6,4). Chỉ có đúng một lựa chọn.
1000000000000000000 1000000000000000000 999999866000004473 999999822000007597 1000000063 Hai số x và y có ước chung lớn nhất khác 1, sau khi rút gọn thu được hơn một tỉ lựa chọn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0