[프로그래머스] 1단계_약수의 개수와 덧셈 (python)

juyeon·2022년 7월 28일
0

코딩테스트(python)

목록 보기
15/22

문제

나의 풀이

1. 성공

def solution(left, right):
    answer = 0
    for a in range(left, right + 1):
    	count = 0
        for b in range(1, a + 1):
            if not a % b: # 약수일 때
                count += 1
        # 약수의 개수가 짝수일 경우 더하고, 홀수일 경우 뺀다
        answer = answer + a if not count % 2 else answer - a
            
    return answer

다른 사람 풀이

1. 숏코딩(프로그래머스)

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
  • 포인트: int(i**0.5) == i**0.5
    • i ** 0.5: i의 제곱근을 구하는 식
    • 제곱근이 정수로 표현이 가능한 수는 약수의 개수가 홀수이다.
profile
내 인생의 주연

0개의 댓글