코딩테스트 연습 - 약수의 합
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수
programmers.co.kr
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
n | return |
12 | 28 |
5 | 6 |
- 입출력 예#1
12의 약수는 1,2,3,4,6,12입니다. 이를 모두 더하면 28 입니다.
- 입출력 예#2
5의 약수는 1,5 입니다. 이를 모두 더하면 6 입니다.
1
2
3
4
5
6
|
def solution(n):
answer = 0
for i in range(1,n+1):
if n % i == 0:
answer += i
return answer
|
cs |
for 문의 i를 1부터 입력 받은 수 n까지 돌리고 n을 i로 나눠서 나머지가 0일 때 answer에 더한다 그리고 그 answer 값을 return한다.
1
2
|
def solution(n):
return n + sum([i for i in range(1, (n//2)+1) if n % i == 0])
|
cs |
for 문의 i를 1부터 n까지가 아닌 (n//2)+1 까지 하고 마지막에 return 값에 n을 더함으로써 위의 코드보다 코드의 전체적인 수 뿐만 아니라 효율을 높인 코드이다.
[프로그래머스/Level1/파이썬3] 제일 작은 수 제거하기 (0) | 2020.10.28 |
---|---|
[프로그래머스/Level1/파이썬3] 최대공약수와 최소공배수 (0) | 2020.10.26 |
[프로그래머스/Level1/파이썬3] 행렬의 덧셈 (0) | 2020.10.22 |
[프로그래머스/Level1/파이썬3] 자릿수 더하기 (0) | 2020.10.21 |
[프로그래머스/Level1/파이썬3] 같은 숫자는 싫어 (0) | 2020.10.20 |