알고리즘
프로그래머스 약수의 개수와 덧셈 (.Java)
wqdsdsf
2023. 11. 9. 22:09
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ left ≤ right ≤ 1,000
입출력 예
left right result
13 17 43
24 27 52
class Solution {
public int solution(int left, int right) {
int cnt = 0; //약수 갯수
int result = 0; // 최종 return값
int repetition = left; //처음 시작값
while(repetition <= right){
for(int i = 1; i*i <= repetition ; i++){
if(repetition % i == 0){
if(repetition / i == i){
cnt++;
}
else{
cnt +=2;
}
}
}
if(cnt % 2 == 0){ //약수의 개수가 짝수이라면~
result += repetition;
cnt =0;
}
else{ //약수의 개수가 홀수라면~
result -= repetition;
cnt = 0;
}
repetition++;
}
return result;
}
}