THPTTD_111 - Đếm bội số

Xem dạng PDF

Gửi bài giải


Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: countdiv.inp
Output: countdiv.out

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JavaScript, Kotlin, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài


Bình luận

Please read the guidelines before commenting.



  • 0
    caodanganhkhoa2015  đã bình luận lúc 12, Tháng 6, 2026, 14:36

    include <iostream>

    include <numeric>

    using namespace std; long long gcd(long long x, long long y) { while (y != 0) { long long r = x % y; x = y; y = r; } return x; } long long countupto(long long x, long long a, long long b, long long lcm) { if (x <= 0) return 0; return (x / a) + (x / b) - (x / lcm); }

    void solve() { long long l, r, a, b; if (!(cin >> l >> r >> a >> b)) return; long long lcm = (a * b) / gcd(a, b);

    long long ans = count_up_to(r, a, b, lcm) - count_up_to(l - 1, a, b, lcm);
    
    cout << ans << "\n";
    

    }

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL); if (freopen("countdiv.inp", "r", stdin) == NULL) return 0; if (freopen("countdiv.out", "w", stdout) == NULL) return 0;

    int t;
    if (cin >> t) {
        while (t--) {
            solve();
        }
    }
    return 0;
    

    }


  • 0
    caodanganhkhoa2015  đã bình luận lúc 12, Tháng 6, 2026, 14:35

    include <iostream>

    include <numeric>

    using namespace std; long long gcd(long long x, long long y) { while (y != 0) { long long r = x % y; x = y; y = r; } return x; } long long countupto(long long x, long long a, long long b, long long lcm) { if (x <= 0) return 0; return (x / a) + (x / b) - (x / lcm); }

    void solve() { long long l, r, a, b; if (!(cin >> l >> r >> a >> b)) return; long long lcm = (a * b) / gcd(a, b); long long ans = countupto(r, a, b, lcm) - countupto(l - 1, a, b, lcm);

    cout << ans << "\n";
    

    }

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL);

    // Khai báo mở và đọc/ghi tệp theo đúng tên đề bài yêu cầu
    if (freopen("countdiv.inp", "r", stdin) == NULL) return 0;
    if (freopen("countdiv.out", "w", stdout) == NULL) return 0;
    
    int t;
    if (cin >> t) {
        while (t--) {
            solve();
        }
    }
    return 0;
    

    }


  • -4
    DuckYB  đã bình luận lúc 1, Tháng 7, 2024, 2:57

    thế quái nào trong đoạn từ 5 -> 11 lại có 2 bội của 4 hoặc 2 bội của 6 vậy?????!!!!!!!!!!


    • 1
      vudinhlong  đã bình luận lúc 4, Tháng 7, 2024, 6:34

      Chắc là số 6 và số 8 á bạn ._.