Submission

Status:

(PPPP)(PPP)(PPP)

Subtask/Task Score:

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

Score: 100

User: konthaina_TH

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 0.722 second

Submitted On: 2026-09-26 14:38:57

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

int main() {
    int a,b;
    cin >> a >> b;
    set<int> twin_p;
    set<int> cousin_p;
    set<int> sexy_p;
    vector<bool>prime(b + 10,true);
    prime[0] = false;
    prime[1] = false;
    for (int i=2 ;i*i<b+10;i++) {
        if (prime[i]) {
            for (int p = i * i;p < b + 10;p += i) {
                prime[p] = false;
            }
        }
    }
    int start = max(2,a-6);
    for (int i = start;i<=b;i++) {
        if (prime[i]) {
            if (prime[i+2]) {
                if (i >= a) {
                    twin_p.insert(i);
                }
                if (i+2 <= b and i+2 >= a) {
                    twin_p.insert(i+2);
                }
            }
            if (prime[i+4]) {
                if (i >= a) {
                    cousin_p.insert(i);
                }
                if (i+4 <= b and i + 4 >= a) {
                    cousin_p.insert(i+4);
                }
            }
            if (prime[i+6]) {
                if (i >= a) {
                    sexy_p.insert(i);
                }
                if (i + 6 <= b and i + 6 >= a) {
                    sexy_p.insert(i+6);
                }
            }
        }
    }
    cout << twin_p.size() << "\n";
    cout << cousin_p.size() << "\n";
    cout << sexy_p.size() << "\n";
    return 0;
}