[프로그래머스(Programmers)][자바(java)] (Lv1) 약수의 개수와 덧셈 <월간 코드 챌린지 시즌2>

728x90

 

https://programmers.co.kr/learn/courses/30/lessons/77884

 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr

 

class Solution {
	public int solution(int left, int right) {
		int ans = 0, m;
		for( int n = left; n <= right; ++n ) {
			m = (int)Math.sqrt(n);
			if( m*m == n )  ans -= n;
			else            ans += n;
		}
		return ans;
	}
}

 

약수의 개수가 홀수인 경우는 n이 제곱근을 가지고 있을 때 이다. 나머지는 약수의 개수가 짝수

 

 

반응형