알고리즘/이론
[알고리즘] 소수 나열하기/ 소수 찾기
자바칩 프라푸치노
2021. 6. 12. 23:11
# 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