반응형
코드
import math
def prime(a):
for i in range(2,int(math.sqrt(a))+1):
if a % i == 0:
return False # 소수 아님
return True
num = int(input())
for i in range(num):
a = int(input())
if a < 2:
print(2)
else:
while 1:
if prime(a):
print(a)
break
a+=1
설명
math.sqrt()를 이용하여 소수인지 확인하는 범위를 해당 숫자의 제곱근으로 줄이면 시간이 단축된다.
주어진 숫자가 2보다 작은 경우는 예외로 두어 2를 출력하게 했다.
반응형
'알고리즘 > 수학' 카테고리의 다른 글
[백준][Python] 2168번 타일 위의 대각선 (0) | 2022.09.19 |
---|---|
[백준][Python] 2553번 마지막 팩토리얼 수 (0) | 2022.09.16 |
[백준][Python] 21312번 홀짝 칵테일 (0) | 2022.05.19 |
[백준][Python] 1747번 소수&팰린드롬 (0) | 2022.03.22 |
[백준][Python] 1934번 최소공배수 (0) | 2022.03.21 |
댓글