링크
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i= left; i<right+1; i++){
answer += reValue(i);
}
return answer;
}
public int reValue(int value){
int count = 0;
for(int i=1; i*i<=value; i++){
if(i*i == value) count++;
else if(value%i ==0) count +=2;
}
return (count%2 ==0)? value:-value;
}
}
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;
}
}
def solution(left, right):
answer = 0
for i in range(left, right+1):
answer += sum_number(i)
return answer
def sum_number(number):
number_list = []
for i in range(1, number//2+1):
if(number%i ==0):
number_list.append(i)
list_size = len(number_list) +1
if list_size%2 ==0:
return number
else :
return -number
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer