알고리즘/프로그래머스
[JAVA] 프로그래머스 Lv1. 약수의합
수진보배
2020. 10. 30. 17:32
728x90
<문제>
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
<제한 사항>
- n은 0 이상 3000이하인 정수입니다.
<풀이>
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n; i++){ // n을 1부터 n까지의 수로 나눠보고 나머지가 0인 수들의 합을 구한다.
if(n%i == 0){
answer += i;
}
}
return answer;
}
}
===================== 다른 풀이 =============================
class SumDivisor {
public int sumDivisor(int num) {
int answer = 0;
for(int i = 1; i <= num/2; i++){ // 약수를 구하는 것이기 때문에 n/2까지의 수로 나누어 약수를 구하고
마지막에 자기자신을 더해줌.
if(num%i == 0) answer += i;
}
return answer+num;
}
728x90