본문 바로가기
카테고리 없음

[백준 1929번] '케이원' 파이썬(python) 수학 I 소수 구하기

by MD.Kang 2021. 4. 28.

문제

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

입력

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

출력

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

예제 입력 1

3 16

예제 출력 1

3

5

7

11

13

 

 

m, n = list(map(int, input().split()))
def is_prime(num):
    if num <= 1:
        return False

    i = 2
    while i * i <= num:
        if num % i == 0:
            return False

        i += 1
    return True

for i in range(m, n + 1):
    if is_prime(i):
        print(i)
        

 

아래와 같이 사용할 수도 있다

 

def isPrime(num):
    if num == 1:
        return False
    else:
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                return False
            
        return True

m, n = map(int, input().split())
for i in range(m, n + 1):
    if isPrime(i):
        print(i)
        
        

 

알았던 내용

map을 이용해 두 수의 비교를 통해 값을 내는 것에 대해서는 알았다. 

 

 

몰랐던 내용

소수를 구하는 방법에 대한 이해가 부족했을 뿐더러 범위 내에 소수 구하는 코드가 잘 생각나지 않았다 

 

 

배운 내용

소수 구하기나 연산제곱 등.. 이러한 수계산 시 무작위적인 계산방법 보다는 이렇게 범위를 설정하여 범위 내에서 

계산식이 활동하도록 하는 방법에 대해 배웠다. 내가 앞으로 이용할 모든 코드에 이렇게 범위를 설정하여 사용할 수 있다는 장점이 생길 수 있겠다.