C++)
#include <string>
#include <vector>
#include <cmath>
using namespace std;
bool visited[1000003];
int solution(int n) {
int answer = 0;
for(int i=2; i<=sqrt(n); i++){
if(!visited[i]){
for(int j=i*i; j<=n; j+=i){
visited[j]=true;
}
}
}
for(int i=2; i<=n; i++){
if(!visited[i])
answer++;
}
return answer;
}
Python)
def solution(n):
arr = [False] * 1000001
for i in range(2, int(n**0.5) + 1):
if arr[i]:
continue
for j in range(i*i, n + 1, i):
if not arr[j]:
arr[j] = True
return len([i for i in range(2, n + 1) if not arr[i]])
* 에라토스테네스의 체 설명 : https://donggoolosori.github.io/2020/10/16/eratos/
'프로그래머스 > Level1' 카테고리의 다른 글
| [Level1] 푸드 파이트 대회 (C++/Python) (0) | 2023.02.07 |
|---|---|
| [Level 1] 시저 암호 (C++/Python) (0) | 2021.01.08 |
| [Level 1] 수박수박수박수박수박수? (C++/Python) (0) | 2021.01.08 |
| [Level 1] 문자열을 정수로 바꾸기 (C++/Python) (0) | 2021.01.08 |
| [Level 1] 서울에서 김서방 찾기 (C++/Python) (0) | 2021.01.08 |