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

Tony Kim·2022년 1월 20일
0
post-thumbnail

프로그래머스

Lv.1 약수의 개수와 덧셈

1.문제

input 두 자연수
output 두 자연수 사이에 있는 모든 자연수 각각 약수의 개수가 짝수면 그 값+ 홀수면 그 값-

2. 풀이

약수의 개수가 홀수인 경우는 해당 자연수가 제곱수일 때이므로 해당 자연수의 제곱근을 구했을때 자연수가 나오는 경우 마이너스를 해주면된다.

제곱근을 구하느 방법을 몰랐기 때문에 모든 제곱근을 가지는 자연수를 리스트에 넣고 해당 리스트에 있는 경우만 마이너스를 해줌

3. 코드

나의 코드

def solution(left, right):
    answer = 0
    double = []
    for i in range(1, 32):
        double.append(i*i)
    for j in range (left, right+1):
        if j in double:
            answer -= j
        else:
            answer += j
    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
profile
Back-end-dev

0개의 댓글