문제
M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.
출력
한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.
예제 입력 1
3 16
예제 출력 1
3
5
7
11
13
내 풀이
# 백준 소수 구하기
# 내 1풀이 시간초과
m, n = map(int, input().split()) # m과 n을 입력받음
prime_number = list(range(m, n+1)) # 범위의 모든 값을 넣어줌
for i in range(m, n+1): # 범위만큼 반복
for j in range(2, int(i**0.5)+1): # 나누어줄 값 범위
if i % j == 0: # 나머지가 없으면
prime_number.remove(i) # 소수가 아니므로 지워줌
break
for i in prime_number: # 소수만 남은 리스트 출력
print(i)
# 내 풀이 2
def isPrime(n): # isPrime이라는 함수를 정의
if n == 1: # 1 일 경우 false 반환
return False
else:
for i in range(2, int(n**0.5)+1): # 아니라면 이 범위에서 나눠주기
if n % i == 0: # 나누어 떨어지면
return False # false 반환
return True
m, n = map(int, input().split())
for i in range(m, n+1): # 입력받은 범위에서 반복
if isPrime(i): # isPrime 함수가 참인 i(소수) 라면
print(i) # print 해줌
'Python > 백준' 카테고리의 다른 글
백준 - 1110 (0) | 2022.08.08 |
---|---|
백준 - 1284 집주소 (0) | 2022.07.19 |
백준 - 4948 (0) | 2022.07.16 |
백준 - 1676 (0) | 2022.07.15 |
2309 - 일곱난쟁이 (0) | 2022.07.14 |