전혀.. 이해가 안갔다.
일단 어떻게든 코드를 찾아서 이해해 보려 노력한 결과
def d(n):
n = n + sum(map(int, str(n)))
return n
a = [0] * 10001
for i in range(1, 10001):
a[i] = d(i)
for i in range(1, 10001):
if i not in a:
print(i)
우선 d(n)함수를 짜는건 어렵지 않았지만
for문을 두개 돌리는데 첫 번째 for문은 1~10,000까지의 숫자로 이루어진 리스트이다. 이 리스트에서 숫자를 하나씩 꺼내서 d(n)함수//생성자 수열 만들기//를 돌린 값을 빈 리스트에 a에 치환해주고 a리스트에 없는 값은 셀프 넘버(생성자가 없는 숫자)가 아니므로 출력한다.. 고 일단 이해했다. 추가 공부 필요..