def solution(left, right): answer = 0 for i in range(left, right+1) : numbers = {1,i} for j in range(2, i//2+1) : if i %j ==0 : numbers.add(j) if len(numbers)%2 ==0 : answer+=i else: answer-=i return answer 풀이. 범위의 숫자들의 약수의 홀 짝 여부에 따라 그 값을 더할지 뺄지 결정하는 문제.
우선 반복문을 통해 해당 범위의 숫자들의 약수를 구한다. 그 후 약수의 갯수를 카운트 하여 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 an...
#
1단계
#
약수의개수
#
코딩테스트
#
파이썬
#
프로그래머스
원문 링크 : [프로그래머스 파이썬 코딩테스트 1단계]약수의 개수와 덧셈