https://www.acmicpc.net/problem/4673

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

 

  • 집합 함수 set() 이용
  • 집합 간 연산 (차집합) 사용 -> 1부터 10000까지의 숫자들의 집합에서 생성자가 있는 집합을 구해 빼준다 

 

numbers = set(range(1, 10000))
remove_set = set()

for num in numbers:
    for n in str(num):
        num += int(n)
    remove_set.add(num)

self_numbers = numbers - remove_set
for self_num in sorted(self_numbers):
    print(self_num)
해안해