소수의 합
문제 링크 : (https://programmers.co.kr/learn/courses/30/lessons/14406)
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <vector>
#include <cstring>
#include <math.h>
using namespace std;
bool prime[20000000];
void Prime(int n) {
memset(prime,true,sizeof(prime)); //초기화 모두 소수
prime[1]=0;
int answer = 0;
for(int i=2;i<sqrt(10000000);i++){
if(prime[i] ==0)
continue;
for(int j=2;j*i<=n;j++){
prime[i*j]=0;
}
}
}
long long solution(int N) {
long long answer = 0;
Prime(N);
for(int i=2;i<=N;i++){
if(prime[i]==true){
answer+=i;
}
}
return answer;
}