基数と加算[Level 1]Python


問題の説明
パラメータは2つの整数leftとrightです.左から右までのすべての数でsolution関数を完了し、約数の個数に偶数因数を加え、約数の個数に奇数因数を加えて減算数を返します.
推奨
1 ≤ left ≤ right ≤ 1,000
I/O例

I/O例#1
次の表に、13から17までのすべての数値の合計を示します.

したがって、13+14+15-16+17=43を返さなければなりません.
I/O例#2
次の表に、24から27までのすべての数字の合計数を示します.

したがって、24-25+26+27=52を返さなければなりません.
私が書いたコード
def solution(left, right):
    answer = 0
    sum_list = [0]
    minus_list = [0]
    sum_num = 0
    cnt = 0

    for i in range(left, right+1):
        cnt = 0
        for j in range(1, i+1):
            if i % j == 0:
                cnt += 1
        #print(cnt)                
        if cnt % 2 == 0: sum_list.append(i)
        else: minus_list.append(i)

    answer = sum(sum_list) - sum(minus_list)
さいてきコード
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