조앤의 기술블로그
[프로그래머스] 약수의 개수와 덧셈 (java) 본문
문제의 큰 알고리즘 자체는 어렵지 않다.
고민했던 부분은
효율적으로 약수의 개수를 구하는 방법은??
[코드]
import java.lang.Math;
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
if(numOfDivisor(i) % 2 == 0){
answer += i;
}else {
answer -= i;
}
}
return answer;
}
static int numOfDivisor(int num){
int count = 0;
for(int i = 1; i <= Math.sqrt(num); i++){
if(num % i == 0){
if(num / i == i)
count++;
else
count += 2;
}
}
return count;
}
}
약수의 개수 구하기 참고 링크
https://mygumi.tistory.com/122
https://starrykss.tistory.com/1046
'Programming > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기 (java) (0) | 2021.06.27 |
---|---|
[프로그래머스] 내적(java) (0) | 2021.06.27 |
[프로그래머스] 음양 더하기 (java) (0) | 2021.06.27 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (java) (0) | 2021.06.27 |
[프로그래머스] 길 찾기 게임 (java) (0) | 2020.04.24 |