Submission

Status:

(PPPP)(TSS)(SSS)

Subtask/Task Score:

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

Score: 40

User: letdown

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 1.085 second

Submitted On: 2025-10-12 12:38:18

#include <iostream>
#include <set>
#include <vector>

using namespace std;

bool isPrime(long long n) {
    if (n < 2) return false;
    for (int i = 2; i*i <= n; i++) {
        if (n % i == 0) return false;
    }
    return true;
}

bool checkPrime(long long n, vector<long long>p) {
    for (auto i : p) if (n == i) return true;
    return false;
}

int main() {
    long long l, u, n;
    cin >> l >> u;
    
    vector<long long> primes;
    vector<long long> primesForCheck;
    for (long long i = l-6; i <= u+6; i++) {
        if (isPrime(i)) {
            primesForCheck.push_back(i);
            if (i >= l && i <= u) primes.push_back(i);
        }
    }

    set<long long> tw, cz, sx;
    for (int i = 0; i < primes.size(); i++) {
        if (checkPrime(primes[i]+2, primesForCheck) || checkPrime(primes[i]-2, primesForCheck)) tw.insert(primes[i]);
        if (checkPrime(primes[i]+4, primesForCheck) || checkPrime(primes[i]-4, primesForCheck)) cz.insert(primes[i]);
        if (checkPrime(primes[i]+6, primesForCheck) || checkPrime(primes[i]-6, primesForCheck)) sx.insert(primes[i]);
    }
    cout << tw.size() << "\n" << cz.size() << "\n" << sx.size();
}