알고리즘 연습/수학, 정수론, 기하
[🥈4 / 백준 4134 / 파이썬] 다음 소수
김세진
2023. 12. 22. 15:25
반응형
4134번: 다음 소수
정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.
www.acmicpc.net
문제
정수 n(0 ≤ n ≤ 4*109)가 주어졌을 때, n보다 크거나 같은 소수 중 가장 작은 소수 찾는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다.
출력
각각의 테스트 케이스에 대해서 n보다 크거나 같은 소수 중 가장 작은 소수를 한 줄에 하나씩 출력한다.
예제 입력3
6 20 100 |
예제 출력7
23 101 |
풀이
정확히 몇 개의 테스트 케이스가 필요한 지 주어지지 않아서 시간 복잡도를 얼마나 고려해야 싶었는데, 그냥 일반적인 소수 판별로도 해결되었다.
에라토스테네스의 체를 활용하여 소수 판별에 있어 시간 복잡도를 더 줄일 수는 있을 것 같다.
import sys
input = sys.stdin.readline
def isPrime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
for _ in range(int(input())):
n = int(input())
while True:
if isPrime(n):
print(n)
break
n+=1
반응형