알고리즘/프로그래머스 Level1

[프로그래머스,자바]Level 1 :약수의 개수와 덧셈

류창 2021. 8. 12. 19:39
반응형
 

문제분석:

left~right 숫자사이에 있는 숫자들의 약수의 갯수가 짝수면 + , 홀수면 - 를 해준다.

 

문제풀이:

left~right를 순회하면서 메소드 alg()를 부른다. 
alg(int x)는 x의 약수의갯수를 구하고 홀수나 짝수라면 + 할지 -할지를 결정한다.
 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        for(int i=left;i<=right;i++){
            answer+=alg(i);
        }
        return answer;
    }
    
    public int alg (int x){
        
        int count=0;
        for(int i=1;i<=Math.sqrt(x);i++){
            if(x%i==0) count+=2;
            if(Math.pow(i,2)==x) count--;
        }
        
        if(count%2==0return x;
        else return x*(-1);
        
    }
}
cs
반응형