728x90
▶ 문제
▶풀이방법
-내가 푼 방법
class Solution {
public int solution(int left, int right) {
int answer = 0;
int count = 0;
for(int i = left; i <= right; i++){
for(int j = 1; j <= i; j++){ //약수 구하기
if(i % j == 0) count ++; //약수 개수세기
}
if(count % 2 == 0) answer += i;//약수 짝수인 경우 더해줌
else answer -= i;//약수 홀수인 경우 뺴줌.
count = 0;
}
return answer;
}
}
-다른 사람이 푼방법
-> 제곱수인 경우 약수는 홀수 라는것,,(진짜 어떻게 이렇게 생각하지,, 대단쓰,,)
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
if(i % Math.sqrt(i) == 0) answer -= i; //제곱수인 경우 약수 개수 홀수
else answer += i; //제곱수가 아닌경우 약수 개수 짝수
}
return answer;
}
}
728x90
'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글
Lv1. 폰켓몬 (0) | 2022.04.20 |
---|---|
Lv1. 실패율[카카오] (0) | 2022.04.18 |
Lv1. 3진법 뒤집기 (0) | 2022.04.17 |
Lv1. 예산 (0) | 2022.04.17 |
Lv1. 두 개 뽑아서 더하기 (0) | 2022.04.17 |