Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

숫자의 고유한 소인수의 곱에 대한 Python 프로그램

<시간/>

이 기사에서 우리는 아래 주어진 문제 설명에 대한 해결책에 대해 배울 것입니다 -

문제 설명 − 숫자 n이 주어지면 사용 가능한 모든 고유한 소인수의 곱을 찾아 반환해야 합니다.

예:

Input: num = 11
Output: Product is 11
Explanation:
Here, the input number is 11 having only 1 prime factor and it is 11.
And hence their product is 11.

접근법 1

i =2에서 n+1까지 for 루프를 사용하여 i가 n의 인수인지 확인한 다음 i가 소수 자체인지 확인하고, 그렇다면 제품 변수에 제품을 저장하고 내가 =n이 될 때까지 이 프로세스를 계속합니다.

예시

def productPrimeFactors(n):
   product = 1
   for i in range(2, n+1):
      if (n % i == 0):
         isPrime = 1
         for j in range(2, int(i/2 + 1)):
            if (i % j == 0):
               isPrime = 0
               break
         if (isPrime):
            product = product * i
   return product
# main
n = 18
print (productPrimeFactors(n))

출력

6

모든 변수의 범위는 아래 이미지에 나와 있습니다 -

숫자의 고유한 소인수의 곱에 대한 Python 프로그램

접근법 2

  • n이 2(짝수)로 나누어지는 동안 2를 출력하고 n을 2로 나눕니다.

  • 1단계 후에 n은 홀수여야 합니다. 이제 i =3에서 n의 제곱근까지 for 루프를 시작합니다. 내가 n을 나누는 동안 I를 인쇄하고 n을 i로 나눕니다. n을 나누지 못한 후 I를 2씩 증가시키고 계속 진행합니다.

  • n이 소수이고 2보다 크면 n은 위의 두 단계를 거쳐도 1이 되지 않습니다. 따라서 2보다 크면 n을 인쇄하십시오.

예시

import math
def productPrimeFactors(n):
   product = 1
   # prime factor 2
   if (n % 2 == 0):
      product *= 2
      while (n%2 == 0):
         n = n/2
# n must be odd
for i in range (3, int(math.sqrt(n)), 2):
   # While i divides n, print i and
   # divide n
   if (n % i == 0):
      product = product * i
      while (n%i == 0):
         n = n/i
   # n is a prime number greater than 2
   if (n > 2):
      product = product * n
   return product
# main()
n = 8
print (int(productPrimeFactors(n)))

출력

2

변수의 범위는 아래 이미지에 언급되어 있습니다 -

숫자의 고유한 소인수의 곱에 대한 Python 프로그램

결론

이 기사에서는 무차별 대입 접근 방식과 효율적인 접근 방식을 사용하여 주어진 숫자의 고유한 소인수를 곱하는 방법에 대해 배웠습니다.