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

파이썬으로 1부터 100 사이의 모든 해피 넘버(Happy Number) 출력하기

1부터 100 사이의 모든 해피 넘버(Happy Number)를 출력해야 할 때는 간단한 반복문과 %(나머지 연산자), +(덧셈 연산자), //(정수 나눗셈 연산자) 같은 기본 연산을 활용하면 됩니다.

해피 넘버란?

해피 넘버는 숫자의 각 자릿수를 제곱한 값들을 모두 더한 숫자로 계속해서 대체했을 때, 최종적으로 1에 도달하게 되는 수를 의미합니다. 만약 이 과정에서 1이 아닌 4에 도달한다면 해당 수는 해피 넘버가 아닙니다(4로 시작하는 순환에 빠지기 때문입니다).

주어진 범위 내의 해피 넘버를 출력하려면 간단한 반복문을 사용할 수 있습니다.

아래는 그 구현 예시입니다.

예제 코드

def check_happy_num(my_num):
   remaining = sum_val = 0
   while(my_num > 0):
      remaining = my_num%10
      sum_val = sum_val + (remaining*remaining)
      my_num = my_num//10
   return sum_val
print("The list of happy numbers between 1 and 100 are : ")
for i in range(1, 101):
   my_result = i
   while(my_result != 1 and my_result != 4):
      my_result = check_happy_num(my_result)
   if(my_result == 1):
      print(i)

실행 결과

The list of happy numbers between 1 and 100 are :
1
7
10
13
19
23
28
31
32
44
49
68
70
79
82
86
91
94
97
100

코드 설명

  • check_happy_num이라는 이름의 함수가 정의되며, 하나의 숫자를 매개변수로 받습니다.
  • 함수 내부에서는 해당 숫자가 0보다 큰지 확인합니다.
  • 합계를 저장할 변수 sum_val이 0으로 초기화됩니다.
  • 숫자를 10으로 나눈 나머지(% 연산)를 구하여 마지막 자릿수를 추출합니다.
  • 추출된 자릿수를 제곱한 후 합계 변수에 더합니다.
  • 정수 나눗셈(//)을 통해 숫자의 마지막 자릿수를 제거하고, 이 과정을 모든 자릿수에 대해 반복합니다.
  • 모든 자릿수의 제곱합이 최종 결과로 반환됩니다.
  • 1부터 101 미만까지의 범위가 정의되고, 각 숫자가 순차적으로 반복 처리됩니다.
  • 각 숫자마다 앞서 정의한 함수가 호출됩니다.
  • 반복 과정의 결과가 1이 되면 해당 숫자는 해피 넘버이므로 콘솔에 출력됩니다. 반면 4에 도달하면 해피 넘버가 아니므로 출력되지 않습니다.