题目描述
PolarBear 刚开始学 C 语言,遇到了一个课后练习题,他是用 for 循环做的但是交上去一直 TLE 他希望你能帮帮他。
给你一段闭区间 [a, b] 以及两个数 x 和 y ,请问在这段区间内有多少个既不被 x 整除也不被 y 整除的数。
注意:本题有多组输入数据
输入
第一行有一个数 t 代表样例个数 ( 1 ≤ t ≤ 10^5 )
接下来的 2t 行中的每一个样例
第一行有两个数 a 和 b ( 1 ≤ a ≤ b ≤ 10^9 ) 。
第二行有两个数 x 和 y ( 1 ≤ x, y ≤ 10^9 ) 。
输出
对于每组输入数据输出计算结果即可,答案为一个整数
样例输入 复制
3
4 9
5 2
2 6
3 4
1 2000
8 6
样例输出 复制
2
2
1500
样例解释一
只有7和9既不被5整除也不被2整除
样例解释二
只有 2 和 5 既不被 3 整除也不被 4 整除
#include<stdio.h>
#include<math.h>
int main()
{
int n;
int sum;
long long int a,b;
long long int x,y;
scanf("%d",&n);
int m=2*n;
while(m--)
{
sum=0;
scanf("%lld %lld",&a,&b);
scanf("%lld %lld",&x,&y);
for(long long int i=a;i<=b;i++)
{
if(i%x!=0&&i%y!=0)
sum++;
}
printf("%d\n",sum);
}
return 0;
}