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
Comments
ok hai bạn tôi nhầm mất...
Bài này em chạy đúng mà sao k hiểu nộp cứ sai:
Ra là làm như lày :v
Niceeeee
Ô 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)); } }
hàm ước chung lớn nhất có sẵn rồi em __gcd nhé
vâng ạ giờ em mới biết :v
bcnn của a và b chứ ko phải a*b