-
문제 - 소수 나열하기개발일지/알고리즘 2021. 12. 27. 15:09
#문제
정수를 입력했을 때, 그 정수 이하의 소수를 모두 반환하시오
# 예시
# 20 입력한다면 answer : [ 2, 3, 5, 7, 11, 13, 17, 19 ]
# 나의 풀이과정
소수는 1, 자기자신으로만 나누어 떨어져야하기 때문에 각 숫자들이 처음 부터 자기자신까지 순서대로 반복하면서 나누어야하므로 이중 for문을 이용하였다.
for문을 이용하여 목표 숫자까지 도달하며 각 숫자들은 2부터 자기자신 -1 을 순서대로 나누어서 나누어 떨어지는 것이 있다면 바로 반복문을 빠져나와 다음 숫자로 이동하도록 코드를로 구현했다. 해당 값동안 나누어 떨어지지 않았다면 소수라는 뜻으로 결과 리스트에 추가 하였음
# 전체 코드
input = 20 def find_prime_list_under_number(number): result = [] # 정답 리스트 for target in range(1, number): # 목표까지 반복 for check in range(2, target-1): # 각 숫자마다 2부터 ~ 자기자신-1 까지 나눠 봄 if target % check == 0: # 중간에 나누어 떨어지는 것이 있다면 소수가 아니므로 break # 반환 result.append(target) # 아무것도 나누어 떨어지지 않다면 break # 소수이므로 정답리스트에 삽입 return result result = find_prime_list_under_number(input) print(result)
소수의 개념과 이중 반복문을 적절히 배치하면 되므로 생각보다 쉽게 풀었다.
'개발일지 > 알고리즘' 카테고리의 다른 글
문제 - 올바른 괄호 (0) 2021.12.27 문제 - 쓱 최대로 할인 (0) 2021.12.27 문제 - 더하거나 빼거나 (0) 2021.12.27 문제 - 배달의 민족 배달 가능 여부 (1) 2021.12.27 문제 - 문자열 뒤집기 (0) 2021.12.27