[백준] 4134 다음 소수

cheeeese·2022년 5월 4일
0

코딩테스트 연습

목록 보기
98/151

📖 문제

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

💻 내 코드

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

n=int(input())

for i in range(n):
    x=int(input())
    while True:
        if isPrime(x)==True:
            print(x)
            break
        else:
            x+=1

💡 풀이

  • 소수를 판별하는 함수를 먼저 만들어줬으
    • 수가 2보다 작다면 False return
    • 아니라면 만약 2부터 자기자신까지의 중 하나라도 나누어떨어지는 수가 있다면 return False
    • 없다면 return True

소수를 구할 때 2 부터 제곱근까지 for문을 돌려도 같은 결과이나 더 빠른 속도이므로 제곱근인 math.sqrt(x) 사용

  • 입력된 수를 함수를 통해 소수인지 판별하고 만약 False를 반환한다면 1을 더해준다
  • 함수가 True를 반환한다면 소수라는 뜻이므로 그 수를 출력한다

0개의 댓글