문제 :
자연수 n이 있다. f(n)=(n의 양의 약수의 합)이라고고 하자. 자연수 n이 어떤 k에 대하여 등식 n = 1 + k(f(n)-n-1)을 만족했을 때, n을 k-초완전수라고 부른다. n이 완전수라는 것은 n이 1-초완전수라는 것이라는 명제와 동치이다. 예를 들어, 21은 2-초완전수이고 301은 6-초완전수이다. 자연수 N을 입력받고 N 이하의 k-초완전수와 그때의 k를 순서쌍으로 출력하는 프로그램을 작성하라.
어떤 분의 해답: num= int(input("숫자를 입력하시오 : "))
print([x for x in range(1, num+1) if x==sum(y for y in range(1, x) if x%y==0)])
-----------------------------------------------------------------------------------
파이썬 초보입니다! 코딩도장에서 문제풀다가 어느분이 써놓은 답안에서 제가 한번도 보지 못했던걸 봐서 이해가 어렵습니다.
print 함수내에 여러 제어문이 들어가 있는데 도저히 이해를 못하겠네요!
고수분이 계시다면, 설명 혹은 위의 내용관련 설명이 되어 있는 곳 링크좀 부탁드립니다!
출처는 표시해두었습니다.