P77884 약수의 개수와 덧셈
날짜 | 2024-03-25 |
사용 언어 | Java |
문제 유형 | |
정답률 | % |
문제 URL | https://school.programmers.co.kr/learn/courses/30/lessons/77884 |
문제 #
문제 설명 #
두 정수 left
와 right
가 매개변수로 주어집니다. left
부터 right
까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항 #
- 1 ≤
left
≤right
≤ 1,000
나의 풀이 #
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++) {
// 제곱근이 정수일 경우 약수의 개수는 홀수
answer += Math.sqrt(i) % 1 == 0 ? i*(-1) : i ;
}
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;
}
}