문제
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을 이용해 두 수의 비교를 통해 값을 내는 것에 대해서는 알았다.
몰랐던 내용
소수를 구하는 방법에 대한 이해가 부족했을 뿐더러 범위 내에 소수 구하는 코드가 잘 생각나지 않았다
배운 내용
소수 구하기나 연산제곱 등.. 이러한 수계산 시 무작위적인 계산방법 보다는 이렇게 범위를 설정하여 범위 내에서
계산식이 활동하도록 하는 방법에 대해 배웠다. 내가 앞으로 이용할 모든 코드에 이렇게 범위를 설정하여 사용할 수 있다는 장점이 생길 수 있겠다.