어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101
이때, n을 d(n)의 “제너레이터”(generator)라고 한다. 위의 예에서 91은 101의 제너레이터이다. 어떤 숫자들은 하나 이상의 제너레이터를 가지고 있는데, 101의 제너레이터는 91뿐만이 아니라 100도 있다. (1 + 0 + 0 + 100 = 101)
그런데 반대로, 제너레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 “셀프 넘버”(self – number)라 이름 붙였다.
예를 들어 1, 3, 5, 7, 9, 20, 31… 은 셀프 넘버들이다.

문제.  1 이상이고 5000보다 작은 모든 셀프넘버들의 합을 구하라.

소스보기


 

저작자 표시 비영리 변경 금지

'Software > 자료구조&알고리즘' 카테고리의 다른 글

셀프넘버(self-number) 문제  (0) 2009/10/14
깊이우선 탐색, 너비우선 탐색  (0) 2009/10/10
큰 수(1000) 팩토리얼 소스  (0) 2009/10/10
Posted by 태발이

댓글을 달아 주세요