ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 문제 - 소수 나열하기
    개발일지/알고리즘 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

    댓글

Designed by Tistory.