알고리즘/programmers

[ programmers ] 약수의 개수와 덧셈 77884번 ( python )

Yanoo 2021. 8. 25. 22:13
728x90
반응형

문제

프로그래머스 77884번 약수의 개수와 덧셈 풀이 ( 파이썬 )

https://programmers.co.kr/learn/courses/30/lessons/77884

 

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

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

programmers.co.kr

 

풀이

import math

def solution(left, right):
    answer = 0

    for number in range(left, right + 1):
        cnt = 0
        for i in range(1, math.ceil(number ** 1/2) + 1):
            if number % i == 0:
                if number // i == i:
                    cnt += 1
                else:
                    cnt += 2
                    
        if cnt % 2 == 0:
            answer += number
        else:
            answer -= number
    
    return answer
728x90
반응형