C/C++ 程序如何查找某个数的唯一质因数的乘积?

cc++server side programmingprogramming

唯一质因数是某个数的因数,该数也是质数。在这个问题中,我们必须找到某个数的所有唯一质因数的乘积。质数是只有两个因数(数字和 1)的数。

在这里,我们将尝试找到计算某个数的唯一质因数乘积的最佳方法。让我们举个例子来让问题更清楚。

有一个数,比如 n = 1092,我们必须得到这个数的唯一质因数的乘积。1092 的质因数是 2、3、7、13,它们的乘积是 546。

要找到这个数,一个简单的方法是找到这个数的所有因数,然后检查该因数是否是质数。如果它将其乘以该数字,然后返回乘法变量。

输入:n = 10
输出:10

解释

这里,输入数字是 10,只有 2 个素因数,它们是 5 和 2。

因此它们的乘积是 10。

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

示例

#include <iostream>
using namespace std;
int main() {
   int n = 10;
   long long int product = 1;
   for (int i = 2; i <= n; i++) {
      if (n % i == 0) {
         int isPrime = 1;
         for (int j = 2; j <= i / 2; j++) {
            if (i % j == 0) {
               isPrime = 0;
               break;
            }
         }
         if (isPrime) {
            product = product * i;
         }
      }
   }
   cout << product;
   return 0;
}

相关文章