어떤 수가 자기 자신을 제외한 모든 양의 약수의 합과 정확히 같을 때, 그 수를 완전수(Perfect Number)라고 부릅니다. 예를 들어 6은 1, 2, 3을 약수로 가지며, 1 + 2 + 3 = 6이므로 대표적인 완전수입니다.
파이썬에서 특정 숫자가 완전수인지 확인해야 할 때는 간단한 for 반복문 하나만으로도 손쉽게 구현할 수 있습니다. 아래에서 그 구현 방법을 살펴보겠습니다.
예제 코드
n = 6
my_sum = 0
for i in range(1, n):
if(n % i == 0):
my_sum = my_sum + i
if (my_sum == n):
print("The number is a perfect number")
else:
print("The number is not a perfect number")출력 결과
The number is a perfect number
코드 설명
검사하고자 하는 값을 변수
n에 지정합니다. 여기서는 6을 사용했습니다.약수의 합을 저장할 변수
my_sum을 0으로 초기화합니다.range(1, n)을 통해 1부터 n-1까지의 숫자를 반복하면서, n을 나누어 떨어지게 하는 값 즉, 약수를 찾아 합계에 더합니다.반복이 끝난 후 계산된 합계가 처음에 정의한
n과 같다면, 해당 숫자는 완전수로 간주됩니다.판별 결과에 따라 적절한 메시지가 콘솔에 출력됩니다.
완전수의 대표적인 예로는 6, 28, 496, 8128 등이 있으며, 실제로 6 다음으로 작은 완전수는 28(1+2+4+7+14)입니다. 위 코드의 n 값만 바꿔주면 임의의 숫자가 완전수인지 간편하게 판별할 수 있습니다.