Submission
Status:
(-SSS)(SSS)(SSS)
Subtask/Task Score:
{0/40}{0/30}{0/30}
Score: 0
User: TonnamSora
Problemset: Twin, Cousin, and Sexy Prime
Language: cpp
Time: 0.002 second
Submitted On: 2025-10-13 14:16:22
#include <bits/stdc++.h>
using namespace std;
int main() {
int l, u;
cin >> l >> u;
// สร้าง sieve
vector<bool> isPrime(u + 1, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= u; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= u; j += i) {
isPrime[j] = false;
}
}
}
// เก็บ prime ทั้งหมดในช่วง [l, u]
vector<int> primes;
for (int i = l; i <= u; i++) {
if (isPrime[i]) primes.push_back(i);
}
int twin = 0, cousin = 0, sexy = 0;
// นับคู่ prime ที่ห่างกัน 2, 4, 6
for (int i = 0; i < (int)primes.size(); i++) {
for (int j = i + 1; j < (int)primes.size(); j++) {
int diff = primes[j] - primes[i];
if (diff == 2) twin++;
else if (diff == 4) cousin++;
else if (diff == 6) sexy++;
else break; // ถ้าเกิน 6 ก็ไม่ต้องเช็กต่อ
}
}
cout << twin << "\n" << cousin << "\n" << sexy;
}