알고리즘

백준 알고리즘 1929 [파이썬]

Brad Daeho Lee 2021. 3. 9. 01:44

 

 

 

 

배운 내용

1. 이번 알고리즘 문제에서 return을 처음 써봤는데, return은 함수 안에서만 쓸 수 있다는것을 깨달았다. 밑에 함수를 보면 if isPrime(k): print(k)에서 isPrime에 True가 return이되면 print(k)가 실행된다.

 

2. 또 처음시도한것은 함수(def)를 만들어서 문제를 풀어보았다. 함수를 이용했을 때 코드를 더 읽기 좋았던것 같고 True, False를 사용할 수 있어서 간편했다.

 

3. 이 문제는 소수에대한 개념이 있어야 풀 수 있는 문제인것 같다. 

 

 

 

 

 

 

문제 

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

 

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

 

 

 

문제풀이

# 소수 찾는 공식
# 1과 해당 숫자 사이에 값중에 해당 숫자랑 나눴을 때 나머지가 없으면 
# 제곱근을 사용해서 반복문의 범위를 좁힌다.
import math

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

M,N = map(int ,input().split())
for k in range(M, N+1):
# isPrime(k) == True: 가 생략되어있다.
  if isPrime(k):
    print(k)