문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항- n은 0 이상 3000이하인 정수입니다.
12 | 28 |
5 | 6 |
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
나의 코드:
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
for(int i=1;i<=n;i++){
if(n%i==0) answer+=i;
}
return answer;
}
풀이:
약수는 나누었을 때 나머지가 0이 되는 숫자이다. 예를들어 4의 약수는 1,2,4이다.
일단, 반복문을 1부터 n까지 돌린다.
그리고 n을 1 2, 3, 4, (만약 n이 4라면) 으로 나누었을 때 나머지가 0 즉, 나머지가 없는 수를 더하면된다.
결과:
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
서울에서 김서방 찾기 (0) | 2022.10.28 |
---|---|
나머지가 1이 되는 수 찾기 (0) | 2022.10.26 |
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. (0) | 2022.10.25 |
머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다 (0) | 2022.10.24 |
정수 num1과 num2가 주어질 때, num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요. (0) | 2022.10.24 |
댓글