ได้รับ L, R, A, B ต้องการนับจำนวนในช่วง [L, R] ที่หาร A ลงตัว หรือหาร B ลงตัว (หรือทั้งคู่)
ตัวอย่าง
อินพุต: L = 10, R = 15, A = 4, B = 3
เอาต์พุต: 2 (12 หาร 3 และ 4 ลงตัว, 15 หาร 3 ลงตัว)
อินพุต: L = 20, R = 30, A = 17, B = 19
เอาต์พุต: 0
แนวทาง
- วนลูป i = L ถึง R
- ถ้า i%A==0 หรือ i%B==0 เพิ่มตัวนับ
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int countDivisors(int l, int r, int a, int b) {
int count = 0;
for (int i = l; i <= r; i++) {
if (i % a == 0 || i % b == 0) count++;
}
return count;
}
int main() {
int L = 5, R = 15, A = 2, B = 5;
cout << endl << "Total divisors of A and B: " << countDivisors(L, R, A, B);
return 0;
}
ผลลัพธ์
Total divisors of A and B: 7