Submission

Status:

(PPPP)(PPP)(PPP)

Subtask/Task Score:

{40/40}{30/30}{30/30}

Score: 100

User: un8qe_x3

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 0.326 second

Submitted On: 2025-11-05 23:03:48

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;

    int maxCheck = b + 6; // we need to check pairs beyond b
    vector<bool> isPrime(maxCheck + 1, true);
    isPrime[0] = isPrime[1] = false;

    for (long long i = 2; i * i <= maxCheck; ++i) {
        if (isPrime[i]) {
            for (long long j = i * i; j <= maxCheck; j += i) {
                isPrime[j] = false;
            }
        }
    }

    int tw = 0, co = 0, xx = 0;

    for (int i = a; i <= b; ++i) {
        if (!isPrime[i]) continue;

        if ((i >= 2 && isPrime[i - 2]) || isPrime[i + 2]) tw++;
        if ((i >= 4 && isPrime[i - 4]) || isPrime[i + 4]) co++;
        if ((i >= 6 && isPrime[i - 6]) || isPrime[i + 6]) xx++;
    }

    cout << tw << "\n" << co << "\n" << xx << endl;

    return 0;
}