문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한사항
- n은 0 이상 3000이하인 정수입니다
입출력 예
n | return |
12 | 28 |
5 | 6 |
class Solution {
public int solution(int n) {
int answer = 0;
for(int i = 1; i <= n; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
}
for문은 i는 1부터 i가 n보다 작거나 같을 때 순회합니다. n을 i로 나눈 나머지가 0이라면 i는 n의 약수라는 뜻입니다. 이 문제는 약수의 합을 원하므로 i의 값을 복합 대입 연산자로 answer에 할당하는 동시에 값을 더해줍니다.
오늘부터 1단계 풀이도 올리려고 합니다. 슬슬 풀 수 있을 것 같습니다. 아직 정답률이 높은, 난이도가 쉬운 문제를 우선적으로 풀어보려고요.
약수 구하는 다른 문제는 아래 링크로,
[프로그래머스 코딩테스트] 약수 구하기(Java) https://sigfriede.tistory.com/68
'프로그래머스 > Lv. 1' 카테고리의 다른 글
[프로그래머스 코딩테스트] 숫자 문자열과 영단어(Java) (0) | 2023.04.03 |
---|---|
[프로그래머스 코딩테스트] x만큼 간격이 있는 n개의 숫자(Java) (0) | 2023.04.03 |
[프로그래머스 코딩테스트] 자릿수 더하기(Java) (0) | 2023.04.03 |
[프로그래머스 코딩테스트] 평균 구하기(Java) (0) | 2023.04.03 |
[프로그래머스 코딩테스트] 짝수와 홀수(Java) (0) | 2023.04.03 |