알고리즘 연습/수학, 정수론, 기하

[🥈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

 

 

 

 

반응형