https://www.acmicpc.net/problem/1929
M, N = map(int, input().split())
for num in range(M, N+1):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num)
num == 1
일 때를 처리하지 못한다.M, N = map(int, input().split())
a = [False, False] + [True] * (N-1)
primes = []
for i in range(2, N+1):
if a[i]:
primes.append(i)
for j in range(2*i, N+1, i):
a[j] = False
for p in primes:
if p >= M:
print(p)
M, N = map(int, input().split())
for num in range(M, N+1):
if num == 1:
continue
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
break
else:
print(num)
num == 1
일 때를 처리했고, is_prime
대신 for-else
문을 사용하였다.for-else
, while-else
문을 잘 사용해보자.for
, while
문에서 break
로 인해 반복문이 중단되지 않았을 때만 else
문이 실행된다.else
문은 "반복이 끝까지 정상적으로 마무리되었다"라는 의미로 전체 순회를 완료한 경우에 실행된다.