[백준 문제풀이] 4134 - 다음 소수

백준 문제풀이 4134번

풀이

  1. 효율적인 코드를 위해. math.sqrt로 주어진 숫자의 제곱근까지만 반복해 소수를 구한다(n의 약수는 무조건 1 ~ $\sqrt n$에 존재)
  2. num을 검사한다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import sys
import math

input = sys.stdin.readline


def primeNumber(x):
    if x < 2:
        return False
    for i in range(2, int(math.sqrt(x) + 1)):
        if x % i == 0:
            return False

    return x


T = int(input())

for i in range(T):
    num = int(input())
    while True:
        if primeNumber(num) == False:
            num += 1
        else:
            break

    print(num)

댓글남기기