곰퓨타의 SW 이야기

[프로그래머스 level1 약수의 개수와 덧셈] 완전제곱수 활용하기 본문

TIL/프로그래머스

[프로그래머스 level1 약수의 개수와 덧셈] 완전제곱수 활용하기

곰퓨타 2021. 6. 10. 20:52

해결해야하는 문제는 다음과 같았다.

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

 

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

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

programmers.co.kr

 

 

math를 import하여 left부터 right까지 숫자를 하나씩 확인하며, 완전 제곱수인 경우에는 약수가 홀수개 이므로 수를 빼주고,

완전 제곱수가 아닌 경우에는 약수가 짝수개이므로 더할 수 있도록 하였다.

 

 

import math

def solution(left, right):
    answer = 0
    # 제곱수는 약수가 홀수개, 제곱수가 아니라면 약수는 짝수개 
    for i in range(left, right+1):
        if math.sqrt(i)-int(math.sqrt(i)) == 0:
            answer -= i
        else :
            answer += i
    return answer

 

 

다른 사람의 풀이를 보니 math.sqrt(i) 는 i**0.5 라고 하여 math 를 import 하지 않아도 된다는 것을 다시 한번 생각해볼 수 있었다.

Comments