20251119 baekjoon

This commit is contained in:
songyc macbook 2025-11-19 21:32:43 +09:00
parent ea8ee29090
commit 3cb8f2e915

View File

@ -0,0 +1,45 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main() {
int N;
scanf("%d",&N);
bool* isPrime = (bool*)malloc(sizeof(bool)*(N+1));
for(int i=0; i<=N; i++) isPrime[i] = (i==0 || i==1) ? false : true;
for(int i=2; i*i<=N; i++) {
if(isPrime[i]) {
for(int j=i*i; j<=N; j+=i) {
isPrime[j] = false;
}
}
}
int prime_count = 0;
for(int i=0; i<=N; i++) if(isPrime[i]) prime_count++;
int* primes = (int*)malloc(sizeof(int)*(prime_count));
int idx=0;
for(int i=2; i<=N; i++) if(isPrime[i]) primes[idx++] = i;
int start = 0, end = 0;
int current_sum = 0;
int result = 0;
while(start < prime_count) {
while(end < prime_count && current_sum < N) current_sum += primes[end++];
if(current_sum == N) result++;
current_sum -= primes[start++];
}
printf("%d\n",result);
free(isPrime);
free(primes);
return 0;
}