728x90
문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
접근
앞으로 n이 소수인지 판단을 할 때 2부터 n의 제곱근까지 검사를 하도록 하자. 왜냐하면 n의 약수는 n/2보다 크지 않기 때문이다.
구현
소수를 판별하는 함수인 is_prime()에서 전달받은 숫자의 제곱근까지 검사하여 소수를 판별하였다.
def is_prime(number):
if number == 1:
return False
for i in range(2, int(number**0.5)+1):
if number%i == 0:
return False
return True
M, N = map(int, input().split())
for num in range(M, N+1):
if is_prime(num):
print(num)
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 2630] 색종이 만들기 (0) | 2021.03.04 |
---|---|
[백준 4948] 베르트랑 공준 (0) | 2021.03.04 |
[백준 11653] 소인수분해 (0) | 2021.03.04 |
[백준 2581] 소수 (0) | 2021.03.04 |
[백준 1463] 1로 만들기 (0) | 2021.03.03 |