Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 정수의 가장 작은 약수 찾기

정수의 가장 작은 약수를 구해야 할 때는 간단한 'for' 반복문만으로도 손쉽게 해결할 수 있습니다. 2부터 차례대로 나누어 떨어지는 수를 찾으면 그것이 곧 가장 작은 약수가 됩니다.

아래는 전체 동작 과정을 보여주는 예제입니다.

예제 코드

first_num = int(input("숫자를 입력하세요..."))
my_list = []

print("입력한 숫자는 ")
print(first_num)

for i in range(2, first_num + 1):
    if first_num % i == 0:
        my_list.append(i)

my_list.sort()
print("가장 작은 약수는 : ")
print(my_list[0])

실행 결과

숫자를 입력하세요...56
입력한 숫자는
56
가장 작은 약수는 :
2

코드 설명

  • 사용자로부터 숫자를 입력받습니다.

  • 약수를 저장할 빈 리스트를 하나 정의합니다.

  • 입력받은 숫자를 콘솔에 출력합니다.

  • 2부터 입력받은 숫자까지의 범위를 반복하며 탐색합니다.

  • 입력받은 숫자를 현재 반복 변수(i)로 나누었을 때 나머지가 0인지 검사합니다.

  • 나누어 떨어진다면, 즉 약수라면 리스트에 추가(append)합니다.

  • 반복이 끝나면 리스트를 오름차순으로 정렬합니다.

  • 정렬된 리스트의 첫 번째 요소가 가장 작은 약수이므로 이를 출력합니다.

효율성을 높이는 팁

사실 위 코드에서는 정렬 과정이 꼭 필요하지 않습니다. 2부터 오름차순으로 탐색하기 때문에 처음 발견되는 약수가 이미 가장 작은 약수이기 때문입니다. 따라서 첫 번째 약수를 찾는 즉시 break로 반복을 종료하면 불필요한 연산을 줄여 실행 속도를 개선할 수 있습니다.