Submission

Status:

(PPPP)(PPP)(PPP)

Subtask/Task Score:

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

Score: 100

User: navysrimuang

Problemset: Twin, Cousin, and Sexy Prime

Language: cpp

Time: 0.434 second

Submitted On: 2025-10-04 23:59:07

#include<bits/stdc++.h>
#define endl '\n'
using namespace std;

int main(){

  int r,l;
  cin >> l >>r;
  vector<bool> prime(r+10,0);
  //sieve
  prime[0] = 1;
  prime[1] = 1;

  for(int i = 2;i<=r+6;i++){
    //find not cross
    if(!prime[i]){
      //cross
      for(int j = 2*i;j<=r+6;j+=i){
        prime[j] = 1;
      }
    }
  }

  int twn = 0,csn = 0, sxy = 0;

  for(int i = l;i<=r;i++){
    
    if(!prime[i] && (!prime[i + 2] || !prime[i - 2])){
      twn++;
    }
    if(!prime[i] && (!prime[i + 4] || (i - 4 >= 0 &&!prime[i- 4]) )){
      csn++;
    }
    if(!prime[i] && (!prime[i + 6] || (i-6 >= 0 && !prime[i- 6]) )){
      sxy++;
    }

  }
  cout << twn << endl << csn << endl << sxy << endl;

  return 0;
}