728x90
반응형
https://www.acmicpc.net/problem/4134
4134번: 다음 소수
정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.
www.acmicpc.net
문제
정수 n(0 ≤ n ≤ 4*10^9)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다.
출력
각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다.
예제 입력 1
3
6
20
100
예제 출력 1
7
23
101
풀이
설명
- 소수를 구할 때 2부터 A까지 전부 돌면 너무 오래 걸려서 시간초과가 발생한다.
- 따라서 '에라토스테네스의 체'를 사용하여 소수의 범위를 줄인다.
- 만일 해당 수가 소수이면 그 수를 출력하고 아니면 1씩 증가하여 다시 소수 검사를 한다.
코드
import sys
input = sys.stdin.readline
def prime(A: int):
if A < 2:
return False
for i in range(2, int(A**0.5) + 1):
if A % i == 0:
return False
return True
n = int(input())
for i in range(n):
num = int(input())
while True:
if prime(num):
print(num)
break
else:
num += 1
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Algorithm] 백준 1110번 더하기 사이클 (Python) (0) | 2023.07.16 |
---|---|
[Algorithm] 백준 1065번 한수 (Python) (0) | 2023.07.16 |
[Algorithm] 백준 2485번 가로수 (Python) (0) | 2023.07.11 |
[Algorithm] 백준 27866번 문자와 문자열 (Python) (0) | 2023.07.10 |
[Algorithm] 백준 10815번 숫자 카드 (Python) (0) | 2023.07.07 |