https://www.acmicpc.net/problem/4673 이 문제에 대한 처음으로 고안한 소스는 이거였다. 문제에 나와있는 함수 d(n)을 만들고 1부터 10000까지의 수가 담긴 리스트를 만든다. 1을 생성자로 할 때 만들 수 있는 무한 수열 n, d(n), d(d(n)), d(d(d(n))), ... 의 원소를 10000보다 작은 것을 구하여 리스트에서 모두 지워준다. 그리고 리스트에서 1 다음 요소를 생성자로 할 때 만들 수 있는 무한 수열 n, d(n), d(d(n)), d(d(d(n))), ... 의 원소를 10000보다 작은 것을 구하여 리스트에서 모두 지워준다. 그리고 리스트에서 그 다음 요소를 생성자로 할 때 만들 수 있는 무한 수열 n, d(n), d(d(n)), d(d(d(n))), ... 의 원소를 10000보다 작은 것을 구하여 리스트에서 모두 지워준다. 이 과정을 반복한다. (마치 중학교 때 배웠던 에라토스테네스의 채 같은 방식으로 구현해보고자 했다) 당연히 오답! 알고리즘 복잡도가 너무 높기 때문에 시간 제한을 초과해버린다. 출력 예제와 실제 출력을 비교해보면 그래도 출력 자체는 정상적으로 되는 것 같다(?) 그래서 방식을 조금 바꿨더니 눈에 띌 정도로 시간이 많이 줄어들었다. 기본적인 발상은 똑같으나, 리스트에서 숫자를 지우는 방식이 아닌 모든 요소가 True고 요소의 개수가 10001개인 리스트의 index 값을 이용하여 index가 생성자가 있는 숫자면 False로 바꿔주는 방식으로 바꿨다. 이러한 방식으로 바꿔주니 j 변수를 다루는 while loop 부분이 좀 더 간단해져서 소스코드를 작성하기 편했다.