정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
n은 0 이상 3000이하인 정수입니다.
생각과정
1. for 문 돌리면서 약수 찾아서 더해줘야겠네
def solution(n):
answer = 0
for i in range(1,n+1):
if n%i==0:
answer+=i
return answer
1)
def sumDivisor(num):
return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
// 이건 수학적인 고민이 없으면 풀지 못할 듯,,
2)
def sumDivisor(num):
return sum([i for i in range(1,num+1) if num%i==0])
개선점
- sum 함수를 쓰면 더 간결해지겠다. 저번에 sum 함수를 쓰자고 다짐했는데😂