[Algorithm] 백준 1929번 소수구하기(파이썬)

고플래닛·2021년 7월 13일
0

Algorithm

목록 보기
18/40
post-thumbnail

백준 #1929

문제 바로가기


문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

입출력 규칙

1. 입력

  • 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

    2. 출력
  • 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

문제접근

두 자연수 사이의 소수를 구하는 문제이므로 소수를 구하는 함수를 먼저 작성한 후 반복문을 통해 두 자연수 사이의 소수를 구하면 된다. 소수를 구하는 공식에서 math 모듈의 sqrt함수를 사용해 입력받은 숫자의 제곱근까지만 약수의 여부를 검증하면 시간복잡도O(N^1/2)를 줄일 수 있다.

문제풀이(Python)


import math

a, b = map(int, input().split(" "))

def check(num):
    if num == 1:
        return False

    else:
        for i in range(2, int(math.sqrt(num)+1)):
            if num%i == 0:
              return False       
        
        return True

for i in range(a, b+1):
    if check(i):
        print(i)


profile
blog 이사했습니다. 주소 : https://goplanit.site/

0개의 댓글