◼ PS Note/백준

[백준] 1929번 : 소수 구하기 (🥈실버 3)

SangYoonLee (SYL) 2023. 1. 22. 04:20
반응형

문제 바로 가기

 

1929번: 소수 구하기

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

www.acmicpc.net

 


풀이

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-03-11
m, n = tuple(map(int, input().split()))

def isPrime(a):
    if a == 1 : return False
    i = 2
    while i*i <= a:
        if a % i == 0:
            return False
        i += 1
    return True

for x in range(m, n+1):
    if(isPrime(x)):
        print(x)

 

풀이 로직

  • m부터 n까지의 수를 for문을 통해 하나씩 확인하면서 소수인지 판별하고, 소수이면 출력한다. 끝.
  • 소수 판별 과정은 함수로 따로 만들어 구현했다. 판별 과정 중 나머지 연산은 n의 제곱근까지만 해보면 된다는 점.

 

문제 접근 과정 및 느낀점

  • 소수를 판별하는 방법만 알고 있으면 어렵지 않게 풀리는 문제. (이게 왜 실버 3??)
  • 알아보니, '에라토스테네스의 체' 풀이 방법 때문에 난이도가 높게 측정된 것 같다. (오늘 같이 푼 '킹 (1063번 /실버 4)' 문제가 훨씬 까다로웠다.)

 

반응형