📜  许多唯一素数的乘积

📅  最后修改于: 2021-05-06 19:31:05             🧑  作者: Mango

给定数字n,我们需要找到其所有唯一素数的乘积。质数:质数本身就是一个基本上是数字的因数。
例子 :

Input: num = 10
Output: Product is 10
Explanation:
Here, the input number is 10 having only 2 prime factors and they are 5 and 2.
And hence their product is 10.

Input : num = 25
Output: Product is 5
Explanation:
Here, for the input to be 25  we have only one unique prime factor i.e 5.
And hence the required product is 5.

方法1(简单)
使用从i = 2到n的循环,并检查i是否为n的因数,然后检查i是否为素数,如果是,则将乘积存储在乘积变量中,并继续此过程,直到i = n。

CPP
// C++ program to find product of
// unique prime factors of a number
#include 
using namespace std;
 
long long int productPrimeFactors(int n)
{
    long long int product = 1;
 
    for (int i = 2; i <= n; i++) {
 
        // Checking if 'i' is factor of num
        if (n % i == 0) {
 
            // Checking if 'i' is a Prime number
            bool isPrime = true;
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }
 
            // condition if 'i' is Prime number
            // as well as factor of num
            if (isPrime) {
                product = product * i;
            }
        }
    }
 
    return product;
}
 
// driver function
int main()
{
    int n = 44;
    cout << productPrimeFactors(n);
    return 0;
}


Java
// Java program to find product of
// unique prime factors of a number.
 
class GFG {
    public static long productPrimeFactors(int n)
    {
        long product = 1;
 
        for (int i = 2; i <= n; i++) {
            // Checking if 'i' is factor of num
            if (n % i == 0) {
 
                // Checking if 'i' is a Prime number
                boolean isPrime = true;
                for (int j = 2; j <= i / 2; j++) {
                    if (i % j == 0) {
                        isPrime = false;
                        break;
                    }
                }
 
                // condition if 'i' is Prime number
                // as well as factor of num
                if (isPrime) {
                    product = product * i;
                }
            }
        }
        return product;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 44;
        System.out.print(productPrimeFactors(n));
    }
}
 
// This code is contributed by _omg


Python3
# Python program to find sum of given
# series.
 
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
                 
            # condition if 'i' is Prime number
            # as well as factor of num
            if (isPrime):
                product = product * i
                 
    return product 
     
     
     
# main()
n = 44
print (productPrimeFactors(n))
 
# Contributed by _omg


C#
// C# program to find product of
// unique prime factors of a number.
using System;
 
class GFG {
 
    // Function to find product of unique
    // prime factors of a number
    public static long productPrimeFactors(int n)
    {
        long product = 1;
 
        for (int i = 2; i <= n; i++) {
 
            // Checking if 'i' is factor of num
            if (n % i == 0) {
 
                // Checking if 'i' is a Prime number
                bool isPrime = true;
                for (int j = 2; j <= i / 2; j++) {
                    if (i % j == 0) {
                        isPrime = false;
                        break;
                    }
                }
 
                // condition if 'i' is Prime number
                // as well as factor of num
                if (isPrime) {
                    product = product * i;
                }
            }
        }
        return product;
    }
 
    // Driver Code
    public static void Main()
    {
        int n = 44;
        Console.Write(productPrimeFactors(n));
    }
}
 
// This code is contributed by nitin mittal


PHP


Javascript


CPP
// C++ program to find product of
// unique prime factors of a number
#include 
using namespace std;
 
// A function to print all prime
// factors of a given number n
long long int productPrimeFactors(int n)
{
    long long int product = 1;
 
    // Handle prime factor 2 explicitly
    // so that can optimally handle
    // other prime factors.
    if (n % 2 == 0) {
        product *= 2;
        while (n % 2 == 0)
            n = n / 2;
    }
 
    // n must be odd at this point.
    // So we can skip one element
    // (Note i = i + 2)
    for (int i = 3; i <= sqrt(n); i = i + 2) {
        // While i divides n, print
        // i and divide n
        if (n % i == 0) {
            product = product * i;
            while (n % i == 0)
                n = n / i;
        }
    }
 
    // This condition is to handle the
    // case when n is a prime number
    // greater than 2
    if (n > 2)
        product = product * n;
 
    return product;
}
 
// Driver Code
int main()
{
    int n = 44;
    cout << productPrimeFactors(n);
    return 0;
}


Java
// Java program to find product of
// unique prime factors of a number.
import java.util.*;
import java.lang.*;
 
class GFG {
    public static long productPrimeFactors(int n)
    {
        long product = 1;
        // Handle prime factor 2
        // explicitly so that can
        // optimally handle other
        // prime factors.
        if (n % 2 == 0) {
            product *= 2;
            while (n % 2 == 0)
                n = n / 2;
        }
 
        // n must be odd at this point.
        // So we can skip one element
        // (Note i = i +2)
        for (int i = 3; i <= Math.sqrt(n); i = i + 2) {
            // While i divides n, print
            // i and divide n
            if (n % i == 0) {
                product = product * i;
                while (n % i == 0)
                    n = n / i;
            }
        }
 
        // This condition is to handle
        // the case when n is a prime
        // number greater than 2
        if (n > 2)
            product = product * n;
 
        return product;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 44;
        System.out.print(productPrimeFactors(n));
    }
}
 
// This code is contributed by _omg


Python3
# Python program to find product of
# unique prime factors of a number
 
import math
 
def productPrimeFactors(n):
    product = 1
     
    # Handle prime factor 2 explicitly so that
    # can optimally handle other prime factors.
    if (n % 2 == 0):
        product *= 2
        while (n % 2 == 0):
            n = n / 2
             
    # n must be odd at this point. So we can
    # skip one element (Note i = i + 2)
    for i in range (3, int(math.sqrt(n))+1, 2):
        # While i divides n, print i and
        # divide n
        if (n % i == 0):
            product = product * i
            while (n % i == 0):
                n = n / i
                 
    # This condition is to handle the case when n
    # is a prime number greater than 2
    if (n > 2):
        product = product * n
         
    return product    
     
# main()
n = 44
print (int(productPrimeFactors(n)))
 
# Contributed by _omg


C#
// C# program to find product
// of unique prime factors
// of a number.
using System;
 
public class GFG {
 
    // Function to find product
    // of prime factors
    public static long productPrimeFactors(int n)
    {
        long product = 1;
 
        // Handle prime factor 2 explicitly
        // so that can optimally handle
        // other prime factors.
        if (n % 2 == 0) {
            product *= 2;
            while (n % 2 == 0)
                n = n / 2;
        }
 
        // n must be odd at this point.
        // So we can skip one
        // element (Note i = i + 2)
        for (int i = 3; i <= Math.Sqrt(n);
             i = i + 2) {
 
            // While i divides n, print
            // i and divide n
            if (n % i == 0) {
                product = product * i;
                while (n % i == 0)
                    n = n / i;
            }
        }
 
        // This condition is to handle
        // the case when n is a prime
        // number greater than 2
        if (n > 2)
            product = product * n;
 
        return product;
    }
 
    // Driver Code
    public static void Main(String[] args)
    {
        int n = 44;
        Console.Write(productPrimeFactors(n));
    }
}
 
// This code is contributed by parashar...


PHP
 2)
        $product = $product * $n;
 
    return $product;
}
 
// Driver Code
$n = 44;
echo productPrimeFactors($n);
 
// This code is contributed by ajit
?>


输出 :
22

方法2(高效)
这个想法是基于有效程序来打印给定数字的所有主要因素

CPP

// C++ program to find product of
// unique prime factors of a number
#include 
using namespace std;
 
// A function to print all prime
// factors of a given number n
long long int productPrimeFactors(int n)
{
    long long int product = 1;
 
    // Handle prime factor 2 explicitly
    // so that can optimally handle
    // other prime factors.
    if (n % 2 == 0) {
        product *= 2;
        while (n % 2 == 0)
            n = n / 2;
    }
 
    // n must be odd at this point.
    // So we can skip one element
    // (Note i = i + 2)
    for (int i = 3; i <= sqrt(n); i = i + 2) {
        // While i divides n, print
        // i and divide n
        if (n % i == 0) {
            product = product * i;
            while (n % i == 0)
                n = n / i;
        }
    }
 
    // This condition is to handle the
    // case when n is a prime number
    // greater than 2
    if (n > 2)
        product = product * n;
 
    return product;
}
 
// Driver Code
int main()
{
    int n = 44;
    cout << productPrimeFactors(n);
    return 0;
}

Java

// Java program to find product of
// unique prime factors of a number.
import java.util.*;
import java.lang.*;
 
class GFG {
    public static long productPrimeFactors(int n)
    {
        long product = 1;
        // Handle prime factor 2
        // explicitly so that can
        // optimally handle other
        // prime factors.
        if (n % 2 == 0) {
            product *= 2;
            while (n % 2 == 0)
                n = n / 2;
        }
 
        // n must be odd at this point.
        // So we can skip one element
        // (Note i = i +2)
        for (int i = 3; i <= Math.sqrt(n); i = i + 2) {
            // While i divides n, print
            // i and divide n
            if (n % i == 0) {
                product = product * i;
                while (n % i == 0)
                    n = n / i;
            }
        }
 
        // This condition is to handle
        // the case when n is a prime
        // number greater than 2
        if (n > 2)
            product = product * n;
 
        return product;
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 44;
        System.out.print(productPrimeFactors(n));
    }
}
 
// This code is contributed by _omg

Python3

# Python program to find product of
# unique prime factors of a number
 
import math
 
def productPrimeFactors(n):
    product = 1
     
    # Handle prime factor 2 explicitly so that
    # can optimally handle other prime factors.
    if (n % 2 == 0):
        product *= 2
        while (n % 2 == 0):
            n = n / 2
             
    # n must be odd at this point. So we can
    # skip one element (Note i = i + 2)
    for i in range (3, int(math.sqrt(n))+1, 2):
        # While i divides n, print i and
        # divide n
        if (n % i == 0):
            product = product * i
            while (n % i == 0):
                n = n / i
                 
    # This condition is to handle the case when n
    # is a prime number greater than 2
    if (n > 2):
        product = product * n
         
    return product    
     
# main()
n = 44
print (int(productPrimeFactors(n)))
 
# Contributed by _omg

C#

// C# program to find product
// of unique prime factors
// of a number.
using System;
 
public class GFG {
 
    // Function to find product
    // of prime factors
    public static long productPrimeFactors(int n)
    {
        long product = 1;
 
        // Handle prime factor 2 explicitly
        // so that can optimally handle
        // other prime factors.
        if (n % 2 == 0) {
            product *= 2;
            while (n % 2 == 0)
                n = n / 2;
        }
 
        // n must be odd at this point.
        // So we can skip one
        // element (Note i = i + 2)
        for (int i = 3; i <= Math.Sqrt(n);
             i = i + 2) {
 
            // While i divides n, print
            // i and divide n
            if (n % i == 0) {
                product = product * i;
                while (n % i == 0)
                    n = n / i;
            }
        }
 
        // This condition is to handle
        // the case when n is a prime
        // number greater than 2
        if (n > 2)
            product = product * n;
 
        return product;
    }
 
    // Driver Code
    public static void Main(String[] args)
    {
        int n = 44;
        Console.Write(productPrimeFactors(n));
    }
}
 
// This code is contributed by parashar...

的PHP

 2)
        $product = $product * $n;
 
    return $product;
}
 
// Driver Code
$n = 44;
echo productPrimeFactors($n);
 
// This code is contributed by ajit
?>
输出 :
22