# Q. 정수를 입력 했을 때,
# 그 정수 이하의 소수를 모두 반환하시오.
# 소수는 자신보다 작은 두 개의 자연수를 곱하여
# 만들 수 없는 1보다 큰 자연수이다.
input = 20
# 소수는 자기 자신과 1외에는 아무것도 나눌 수 없다.
def find_prime_list_under_number(number):
prime_list = []
for n in range(2, number + 1): #2부터 number까지 반복
for i in range(2,n): #2부터 number-1까지 반복
if n % i == 0:
break
else:
prime_list.append(n)
return prime_list
result = find_prime_list_under_number(input)
print(result)
2부터 number까지 돌고
안에 for문은 2부터 number-1까지 돈다
하나씩 차근차근 보자면
n=2일때 i =2이고 이중 for문에서 반복문의 range가 2부터 1까지 돈다이므로 n=2일때는 반복문이 돌지않고 바로
prime_list에 2가 넣어진다
n=3일때 i가 2이고 이중 for문에서 반복문의 range가 2부터 2까지 돈다이므로 n=3일때는 반복문이 1번만 돌아서
3%2가 0인지 확인한다. 아니므로 prime_list에 3이 들어간다
n=4일때 i가 2이고 이중 for문에서 반복문의 range가 2부터 3까지 돈다이므로 n=4일때는 반복문이 2번 돌기로했는데 4%2가 0이므로 바로 break된다
...
728x90
'알고리즘 > 이론' 카테고리의 다른 글
[알고리즘] 링크드 리스트 append 구현 (0) | 2021.06.13 |
---|---|
[알고리즘] 문자열 뒤집기 python (0) | 2021.06.12 |
[알고리즘] 공간복잡도 파악하기 (0) | 2021.06.12 |
[알고리즘] 문자열에서 알파벳 중에 가장 많이 나온 알파벳 찾기/ 최빈값 찾기 python (0) | 2021.06.12 |
[알고리즘] 최댓값 찾기 python (0) | 2021.06.12 |