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

2021. 7. 29. 18:01·코딩테스트/프로그래머스
728x90
반응형

{{문제}}

두 정수 left와 right가 매개변수로 주어집니다.

left부터 right까지의 모든 수들 중에서,

약수의 개수가 짝수인 수는 더하고,

약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

 

※제한사항※

1 ≤ left ≤ right ≤ 1,000


{{풀이}}

def solution(left, right):
    #1 약수의 개수 구하기
    dic = {}
    for n in range(left, right+1):
        cnt = 0
        for i in range(1, n+1):
            if i*i > n: break
            if n%i == 0: 
                cnt+=1
                if i*i < n: cnt+=1
        dic[n] = cnt
    #2 짝수개이면 양수, 홀수개이면 음수
    s = 0
    for n, cnt in dic.items():
        if cnt%2 == 0: 
            s += n
        else:
            s -= n 
    return s

 

{{인상 깊었던 다른 분의 풀이}}

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

 

728x90
반응형

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스]최대공약수와최대공배수-Python3  (2) 2021.07.29
[프로그래머스]짝수와홀수-Python3  (2) 2021.07.29
[프로그래머스]완주하지못한선수-Python3  (3) 2021.07.29
[프로그래머스]3진법뒤집기-Python3  (0) 2021.07.29
[프로그래머스]소수만들기-C++  (2) 2021.07.29
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스]짝수와홀수-Python3
  • [프로그래머스]완주하지못한선수-Python3
  • [프로그래머스]3진법뒤집기-Python3
  • [프로그래머스]소수만들기-C++
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[프로그래머스]약수의개수와덧셈-Python3
상단으로

티스토리툴바