S E P H ' S

[Python] 약수의 개수와 덧셈 본문

Algorithm/Programmers

[Python] 약수의 개수와 덧셈

yoseph0310 2021. 7. 6. 22:45
 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr

프로그래머스 문제를 풀면서 수학의 중요성을 다시 한번 깨닫게 해준 문제다.

 

def divisor(n):
    nums = []
    for i in range(1, n+1):
        if n % i == 0:
            nums.append(i)
    
    return len(nums)

def solution(left, right):
    answer = 0
    for i in range(left, right+1):
        if divisor(i) % 2 == 0:
            answer += i
        else:
            answer -= i
            
    return answer

 

약수의 개수를 반환하는 함수를 만들고 문제를 풀어냈다. 그런데...

 

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

 

제곱수의 약수의 개수는 제곱근이 약수로 존재하게 되면서 무조건 홀수인 성질을 적용해 푼 코드이다. 호호.. 

 

 

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 내적  (0) 2021.07.08
[Python] 폰켓몬  (0) 2021.07.07
[Python] 음양 더하기  (0) 2021.07.06
[Python] 예산  (0) 2021.07.06
[Python] 신규 아이디 추천  (0) 2021.07.06