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

파이썬으로 1부터 100 사이의 모든 Disarium 수를 찾아 출력하는 방법

1부터 100 사이의 모든 Disarium 수(디사리움 수)를 출력해야 하는 경우, 1부터 100까지 간단한 반복문을 실행하면서 각 숫자의 자릿수 길이를 계산하고, 각 자릿수에 해당 자리의 거듭제곱을 곱한 값을 더하면 됩니다.

계산된 합이 원래 숫자와 같다면 그 숫자는 Disarium 수로 판별됩니다.

Disarium 수란?

Disarium 수는 각 자릿수를 자신의 자리 위치만큼 거듭제곱한 값들의 합이 원래 숫자와 동일한 수를 의미합니다. 예를 들어 89는 8¹ + 9² = 8 + 81 = 89가 되므로 Disarium 수입니다.

아래는 이를 구현한 예제 코드입니다.

예제 코드

def length_calculation(my_val):
    len_val = 0
    while(my_val != 0):
        len_val = len_val + 1
        my_val = my_val//10
    return len_val
def digit_sum(my_num):
    remaining = sum_val = 0
    len_fun = length_calculation(my_num)
    while(my_num > 0):
        remaining = my_num%10
        sum_val = sum_val + (remaining**len_fun)
        my_num = my_num//10
        len_fun = len_fun - 1
    return sum_val
ini_result = 0
print("The disarium numbers between 1 and 100 are : ")
for i in range(1, 101):
    ini_result = digit_sum(i)
    if(ini_result == i):
        print(i)

실행 결과

The disarium numbers between 1 and 100 are :
1
2
3
4
5
6
7
8
9
89

코드 설명

  • 두 개의 함수가 정의됩니다. 하나는 숫자의 자릿수 개수를 구하는 함수이고, 다른 하나는 각 자릿수에 자리 위치만큼 거듭제곱한 값을 더하는 함수입니다.
  • 초기 결과값은 0으로 설정합니다.
  • 1부터 101 미만(즉, 1~100)까지 반복문을 돌며, 각 숫자에 대해 자릿수 거듭제곱의 합을 계산합니다.
  • 계산된 합이 원래 숫자와 같으면 그 숫자를 Disarium 수로 판별하여 출력합니다.
  • 결과적으로 1부터 9까지의 한 자리 숫자와 89가 콘솔에 출력됩니다.