Submission

Status:

(PPPP)(PPP)(PPP)

Subtask/Task Score:

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

Score: 100

User: gay69

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 0.313 second

Submitted On: 2025-10-05 21:19:59

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

vector<bool> find_sieve(ll n) {
    vector<bool> sieve(n + 1, false);
    sieve[0] = sieve[1] = true;
    for (ll i = 2; i * i <= n; i++) {
        if (sieve[i]) {
            continue;
        }
        for (ll j = i * i; j <= n; j += i) {
            sieve[j] = true;
        }
    }
    return sieve;
}

int main() {
    ll l, r;
    cin >> l >> r;
    vector<bool> sieve = find_sieve(r + 6);
    ll m = sieve.size();
    ll ans = 0, ans2 = 0, ans3 = 0;
    for (int i = l; i <= r; i++) {
        if (sieve[i]) {
            continue;
        }
        ans += ((i >= 2 && !sieve[i - 2]) || !sieve[i + 2]);
        ans2 += ((i >= 4 && !sieve[i - 4]) || !sieve[i + 4]);
        ans3 += (( i >= 6 && !sieve[i - 6]) || !sieve[i + 6]);
    }
    cout << ans << "\n" << ans2 << "\n" << ans3 << "\n";
    return 0;
}