반응형
문제유형
에라토스테네스의 체
풀이 방법 도출 과정
1. 에라토스테네스 체를 사용하는 문제이다.
2. 1은 소수가 아니므로 제외해준다.
3. 소수 판별을 위한 반복문을 실행한다.
- 반복범위는 2부터 int(i ** 0.5) + 1까지이다.
- 특정 수의 제곱근까지만 약수를 검사하면, 해당 수의 모든 약수를 판별할 수 있다.
4. 약수가 존재하면 소수가 아니다.
- 만약 i가 j로 나누어떨어진다면, i는 약수를 가지므로 소수가 아니다.
- 그렇지 않다면 i는 소수이다.
5. 이 방식대로 코드를 작성해보았다.
시간 복잡도
외부 for문은 m에서 n까지 i번 반복하기 때문에 대략 O(n)이며 내부 반복문은 2에서 int(i**0.5)+1개 반복하기 때문에 대략 O(i**0.5)인데 전체 복잡도는 i**0.5를 n번 반복하기 때문에 적분을 사용한다면 O(n**2/3)정도로 대략 O(n)이다.
코드 및 간단설명
에라토스테네스의 체를 사용한 문제로 소수 판별을 위한 판별문을 사용하였다.
m,n=map(int,input().split())
for i in range(m, n+1):
if i == 1:
continue
for j in range(2,int(i**0.5)+1):
if i%j == 0:
break
else:
print(i)
[백준] 1929번 : 소수 구하기 (파이썬)
에라토스테네스의 체(소수 구하기) 문제이다.1은 소수가 아니므로 제외해준다.반복문을 돌린다. 범위는 2부터 int(i\*\*0.5)+1까지이다. 특정 수의 제곱근을 구해, 그 제곱근까지의 약수를 구하면 해
velog.io
이 사람 풀이를 참조하였다.
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
코딩테스트 19일차(2025.02.06) - 백준4949번(균형잡힌 세상) (0) | 2025.02.07 |
---|---|
코딩테스트 18일차(2025.02.06) - 백준1260번(DFS와 BFS) (0) | 2025.02.06 |
코딩테스트 17일차(2025.02.05) - 백준10809번(알파벳 찾기) (0) | 2025.02.05 |
코딩테스트 16일차(2025.02.02) - 백준11720번(숫자의 합) (0) | 2025.02.02 |
코딩테스트 16일차(2025.02.02) - 백준11654번(아스키 코드) (0) | 2025.02.02 |