一家食品厂生产了大批食品,每件食品上都标有唯一的编号,从 1 到 10^{18} 依次排列。
为了确保产品质量,工厂决定对编号在 [S, E] 范围内的食品进行抽检。由于检测设备的限制,工厂制定了抽检规则:编号能被 X 整除或能被 Y 整除的食品不纳入抽检范围。
你的任务是帮助工厂计算,在编号从 S 到 E(包括 S 和 E)的食品中,有多少件食品会被选中进行抽检,即:找出指定范围内,编号既不能被 X 整除也不能被 Y 整除的食品数量。
输入一行,包含四个整数,S E X Y,含义如题所述,用空格分隔。
输出一个整数,表示在编号从 S 到 E 范围内的食品中,需要抽检的食品的数量。
1 10 2 3
3
100 500 12 18
357
314159265358979323 846264338327950288 419716939 937510582
532105071133627368
在编号从 1 到 10 的食品中:
因此,会被抽检的食品有 3 件。
对于 100\% 的数据,满足 1 \leq S \leq E \leq 10^{18} , 1 \leq X, Y \leq 10^9。
| 测试点 | S,E | 特殊性质 |
|---|---|---|
| 1 \sim 2 | 1 \leq S \leq E \leq 1000 | 无 |
| 3 | 1 \leq S \leq E \leq 10^{18} | X,Y 至少有一个值是 1 |
| 4 \sim 10 | 1 \leq S \leq E \leq 10^{18} | 无 |