☕Language: Java
1
2
3
4
5
6
7
8
9
10
|
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;
}
}
|
* 1부터n까지 약수 확인
1
2
3
4
5
6
7
8
9
10
|
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n/2; i++){
if(n%i==0) answer += i;
}
return answer + n;
}
}
|
* 1부터 n/2까지 약수 확인
- n의 절반까지만 반복하는 이유: n의 절반을 넘어가면 더 이상 n의 약수가 될 수 없음
- 1을 제외한 최소 약수는 2, 3, 4 ...인데, 약수는 대칭구조를 이루므로 n/2보다 클 수 없음
* answer + n
- 자기 자신은 자기 자신의 약수이므로 return값에 추가
🔗 소스 코드
GitHub
📚 참고 자료
'Computer > Algorithm_Java' 카테고리의 다른 글
[Algorithm_Java] 시저 암호 (Success) (0) | 2023.10.29 |
---|---|
[Algorithm_Java] 문자열을 정수로 바꾸기 (Success) (0) | 2023.10.28 |
[Algorithm_Java] 수박수박수박수박수박수? (Success) (0) | 2023.10.27 |
[Algorithm_Java] 소수 찾기 (Success) (0) | 2023.10.26 |
[Algorithm_Java] 서울에서 김서방 찾기 (Success) (0) | 2023.10.25 |