Submission
Status:
(-SSS)(SSS)(SSS)
Subtask/Task Score:
{0/40}{0/30}{0/30}
Score: 0
User: peilin
Problemset: Twin, Cousin, and Sexy Prime
Language: c
Time: 0.012 second
Submitted On: 2025-10-12 15:41:45
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#define MAX_U 70000000
bool isPrime[MAX_U + 1];
void sieve(int n) {
memset(isPrime, true, sizeof(isPrime));
isPrime[0] = isPrime[1] = false;
for (int p = 2; p * p <= n; p++) {
if (isPrime[p]) {
for (int i = p * p; i <= n; i += p)
isPrime[i] = false;
}
}
}
int main() {
int l, u;
scanf("%d %d", &l, &u);
sieve(u);
int twin_count = 0;
int cousin_count = 0;
int sexy_count = 0;
for (int i = l; i <= u; i++) {
if (isPrime[i]) {
if (i + 2 <= u && isPrime[i + 2]) {
twin_count++;
}
if (i + 4 <= u && isPrime[i + 4]) {
cousin_count++;
}
if (i + 6 <= u && isPrime[i + 6]) {
sexy_count++;
}
}
}
printf("%d\n", twin_count);
printf("%d\n", cousin_count);
printf("%d\n", sexy_count);
return 0;
}