백준 알고리즘 4134번: 다음소수 python

tomkitcount·2025년 3월 25일

알고리즘

목록 보기
26/304

https://www.acmicpc.net/problem/4134

해답

import sys

input=sys.stdin.readline

test_case = int(input())

for i in range(test_case):
    n = int(input())

    while 1:
        if n == 0 or n == 1:
            print(2)
            break

        for i in range(2, int(n ** 0.5) + 1 ):
            if n % i == 0:
                break
        else:
            print(n)
            break
        n += 1

풀이

내부 for문:
n이 소수인지 판별하기 위해 2부터 루트n 까지의 모든 정수로 n을 나누어봅니다.
만약 n이 어떤 수로 나누어지면 (즉, 나머지가 0이면) 소수가 아니므로 break로 for문을 종료합니다.
다음 n 은 +1 된 상태로 다시 for문에 들어가게 됩니다.

for-else 문:
for문에서 break가 실행되지 않으면, else 구문이 동작하게 되는데, 이 경우 n은 소수임을 의미합니다. 따라서 n을 출력하고 while문을 종료합니다.

profile
To make it count

0개의 댓글