PRIME 18


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 10M

Author:
Problem type
Allowed languages
C, C++, C11, CLANG, CLANGX, CSC, DART, F95, Fortrn, GAS32, Itercal, Java, kotlin, LEAN, LISP, MONOVB, Pascal, php, PIKE, prolog, Pypy, Python, RUST, SWIFT, TUR, V8JS, VB, ZIG

Cho bốn số M, N, A, B. Nhiệm vụ của bạn là hãy đếm tất cả các số trong khoảng [M, N] chia hết cho các số A hoặc B.



Input

Dòng đầu tiên đưa vào số lượng test T.

Những dòng kế tiếp đưa vào các bộ test.

Mỗi bộ test gồm 4 số M, N, A, B. T, M, N, A, B thỏa mãn rang buộc 1≤T≤100; 1≤M ≤ N ≤10^9 ; 1≤A, B ≤1000;

Output

Đưa ra kết quả mỗi test theo từng dòng.

Example:

Input
2 
5 11 4 6
3 1000 5 9

Output
2
289


Nguồn bài : spoj.com/PTIT

utc

Comments


  • 1
    TNg0c_CNTT3_K60  commented on June 29, 2020, 12:37 p.m.

    ok hai bạn tôi nhầm mất...


  • 1
    TNg0c_CNTT3_K60  commented on June 29, 2020, 3:09 a.m. edited

    Bài này em chạy đúng mà sao k hiểu nộp cứ sai:

    #include<bits/stdc++.h>
    using namespace std;
    long long int so(long long int a,long long int b,long long int m,long long int n)
    {
        return (n/a-m/a)+(n/b-m/b)-(n/(a*b)-m/(a*b));
    }
    int main()
    {
        long long int a,b,m,n,t;
        scanf("%lld",&t);
        for(int i=0;i<t;i++)
        scanf("%lld%lld%lld%lld",&m,&n,&a,&b),
        printf("%lld\n",so(a,b,m,n));
    }

    • 0
      Phuc_CNTT3_K60  commented on June 29, 2020, 1:05 p.m.

      Ra là làm như lày :v


    • 0
      Phuc_CNTT3_K60  commented on June 29, 2020, 1:05 p.m.

      Niceeeee


    • 1
      DuyAnhhh  commented on June 29, 2020, 12:15 p.m.

      Ô tìm bcnn của a vs b nhá,đây là code tôi

      include"stdio.h"

      long ucln(long a,long b){ if (a%b!=0) return ucln(b,a%b); else return b; }
      long bcnn(long a,long b){return (a*b)/ucln(a,b);} long result(long n,long a,long b){ long s=n/a + n/b - n/bcnn(a,b); return s; }
      int main(){ long t,a,b,m,n; scanf("%ld",&t); for(int i=1;i<=t;i++)
      { scanf("%ld%ld%ld%ld",&m,&n,&a,&b); printf("%ld\n",result(n,a,b)-result(m-1,a,b)); } }


      • 1
        TICHPX  commented on June 30, 2020, 5:35 a.m.

        hàm ước chung lớn nhất có sẵn rồi em __gcd nhé


        • 1
          DuyAnhhh  commented on June 30, 2020, 5:50 a.m.

          vâng ạ giờ em mới biết :v


    • 2
      Giang_CNTT3_K60  commented on June 29, 2020, 4:51 a.m.

      bcnn của a và b chứ ko phải a*b