Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับตัวหารของ A หรือ B ในช่วงที่กำหนด ใน C++

ได้รับ 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