이 기사에서 우리는 아래 주어진 문제 설명에 대한 해결책에 대해 배울 것입니다 -
문제 설명
숫자 입력 n이 주어졌을 때 작업은 숫자의 홀수 인수의 합을 찾는 것입니다.
여기에서 먼저 모든 짝수 요소를 제거해야 합니다.
모든 짝수 요소를 제거하기 위해 n을 2로 나눌 수 있을 때까지 반복적으로 나눕니다. 이 단계 후에는 숫자의 홀수 요소만 얻습니다.
아래는 구현입니다 -
예시
import math def sumofoddFactors( n ): #prime factors res = 1 # ignore even factors while n % 2 == 0: n = n // 2 for i in range(3, int(math.sqrt(n) + 1)): count = 0 curr_sum = 1 curr_term = 1 while n % i == 0: count+=1 n = n // i curr_term *= i curr_sum += curr_term res *= curr_sum # n is a prime number. if n >= 2: res *= (1 + n) return res # main n = 27 print(sumofoddFactors(n))
출력
41
모든 변수는 아래 그림과 같이 전역 프레임에 선언됩니다. -
결론
이 기사에서는 숫자의 홀수 요인의 합을 찾는 접근 방식에 대해 배웠습니다.