coding test - python/Programmers

Programmers / 약수의 개수와 덧셈 / Python

sillon 2022. 3. 31. 21:24
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 약수의 개수와 덧셈

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77884


나의 풀이

#약수의 개수를 세는 함수
def count(x):
    cnt = 0
    for i in range(1,x//2+1):
        if x % i == 0:
            cnt += 1
    return cnt
#약수가 짝수인지 홀수인지 정리하고 출력하는 함
def solution(left,right):
    arr_cnt = []
    res = []
    for i in range(left,right+1):
        arr_cnt.append(count(i))
        res.append(i)
    
    for i in range(len(arr_cnt)):
        if arr_cnt[i] % 2 == 0:
            res[i] = -1 * res[i]
    return sum(res)

 

모범답안

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

제곱수는 약수의 개수가 홀수라는 것을 구현하셨다...


※ 알아야 할 것

- 제곱수는 약수의 개수가 홀수다

 

728x90
반응형