최대 1 분 소요

문제 링크

내 풀이

def solution(left, right):
    result = 0
    for i in range(left,right+1):
        yak = []
        for k in range(1, i // 2 + 1):
            if i % k == 0:
                yak.append(k)
        yak_num = len(yak) + 1
        if yak_num % 2 == 0:
            result += i
        else:
            result -= i
            
    return result

다른 풀이

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

풀이 해석

제곱수는 약수의 개수가 홀수인 점을 이용한 풀이

댓글남기기