Submission

Status:

(PPPP)(PPP)(TSS)

Subtask/Task Score:

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

Score: 70

User: nate213121

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 1.077 second

Submitted On: 2026-09-19 11:27:08

#include <bits/stdc++.h>

using namespace std;

bool isPrime(int n)
{
    if(n <= 0)
    {
        return false;
    }
    if(n == 1)
    {
        return false;
    }
    if(n == 2)
    {
        return true;
    }
    bool out = true;
    for(int i = 2; i <= ceil(sqrt((double)(n))); i++)
    {
        if(n % i == 0)
        {
            out = false;
            break;
        }
    }
    return out;
}

int main()
{
    int l, h;
    cin >> l >> h;
    vector<int> primes;
    vector<bool> primeCheck(70000001, false);
    for(int n = l - 6; n <= h + 6; n++)
    {
        if(n <= 70000000 && n >= 0 && isPrime(n))
        {
            primes.push_back(n);
            primeCheck[n] = true;
        }
    }
    int two = 0, four = 0, six = 0;
    for(int diff = 2; diff <= 6; diff += 2)
    {
        //cout << "Diff = " << diff << ": ";
        for(auto& p:primes)
        {
            if(p >= l && p <= h && ((p - diff >= 0 && primeCheck[p - diff]) || (p + diff <= 70000000 && primeCheck[p + diff])))
            {
                //cout << p << ", ";
                if(diff == 2)
                {
                    two += 1;
                }
                else if(diff == 4)
                {
                    four += 1;
                }
                else
                {
                    six += 1;
                }
            }
        }
        //cout << endl;
    }
    cout << two << endl << four << endl << six;

    return 0;
}