[Programmers] 소수 찾기

프로그래머스 level1

Posted by kyoungIn on January 4, 2019

소수 찾기

문제 링크 :

풀이

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
#include <string>
#include <vector>
#include <cstring>
#include <math.h>
using namespace std;
bool prime[20000000];
int solution(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;
        }
    }
    
    for(int i=2;i<=n;i++){
        if(prime[i]==true){
            answer++;
        }
    }
    return answer;
}