[프로그래머스] 약수의 개수와 덧셈

yewon Lee·2023년 4월 2일
0

😎코딩테스트 연습>월간 코드 챌린지 시즌2>약수의 개수와 덧셈


📘 문제 풀이

  1. left부터 right까지 약수의 개수 구하기
  2. 약수의 개수가 짝수이면 양수의 값 append
  3. 홀수이면 음수 값 append
def solution(left, right):

   num_list = []
   for num in range(left,right+1):
       k = 0
       for a in range(1, num+1):
           if num%a == 0:
               k += 1
       if k%2 == 0:
           num_list.append(num)
       else:
           num_list.append(-num)
           
   return sum(num_list)

다른 사람의 풀이를 보니 약수가 홀수개라면 제곱근이라는 것을 이용해서
제곱근을 구하는 math.sqrt()을 이용하는 방법도 있었다.

import math

def solution(left, right):
   answer = 0
   for i in range(left, right + 1, 1):
       sqrt = math.sqrt(i)
       if int(sqrt) == sqrt:
           answer -= i
       else:
           answer += i

   return answer
profile
시작

0개의 댓글