이 기사에서 우리는 아래 주어진 문제 설명에 대한 해결책에 대해 배울 것입니다 -
문제 설명
양의 정수 n이 주어집니다. 숫자의 가장 큰 소인수를 찾아야 합니다.
접근
- 주어진 숫자 입력을 숫자의 제수로 나누어 인수분해합니다.
- 이제 최대 소인수를 계속 업데이트하십시오.
예
import math def maxPrimeFactor(n): # number must be even while n % 2 == 0: max_Prime = 2 n /= 1 # number must be odd for i in range(3, int(math.sqrt(n)) + 1, 2): while n % i == 0: max_Prime = i n = n / i # prime number greator than two if n > 2: max_Prime = n return int(max_Prime) # Driver code to test above function n = 15 print(maxPrimeFactor(n))
시간 복잡도:O(n^½)
보조 공간:O(1)
출력
5
모든 변수는 아래 그림과 같이 전역 프레임에 선언됩니다.
결론
이 기사에서는 숫자의 가장 큰 소인수를 찾는 접근 방식에 대해 배웠습니다.