T9760 2017

题目背景

四川省ACM 2017 G题

题目大意:

给定四个整数a,b,c,d,a <= x <= b,c <= y <= d

求出有多少对x,y使得x*y是2017的倍数。

题目描述

Given a, b, c, d, find out the number of pairs of integers (x, y) where a ≤ x ≤ b, c ≤ y ≤ d and x · y is multiple

of 2017.

输入输出格式

输入格式:

The input contains zero or more test cases and is terminated by end-of-file.

Each test case contains four integers a, b, c, d.

• 1 ≤ a ≤ b ≤ 10^9

, 1 ≤ c ≤ d ≤ 10^9

• The number of tests cases does not exceed 10^4

.

输出格式:

For each case, output an integer which denotes the result.

输入输出样例

输入样例#1:

输出样例#1:

很简单,我们打个表,直接发现2017是个素数。

所以我们对于[a,b]我们只用找到2017的倍数的个数,那么直接乘以x-y+1就得到对于ab区间的答案,然后反之亦然。

然后根据容斥原理,我们肯定把两边同时为2017的倍数的答案多算了进去,再额外减去就好了。

c++代码如下:

 

回复

  1. 回复 WJ

    你这个就有点复杂了

    • 回复 D-Tgotp

      @WJ 是么????我感觉比你的简单

3 + 5 =