C/C++程序:查找数字的唯一质因数的乘积?


唯一质因数是指既是该数字的因数,又是质数的因数。在这个问题中,我们必须找到一个数字的所有唯一质因数的乘积。质数是指只有两个因数的数,即该数本身和1。

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

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

一种简单的办法是找到该数字的所有因数,并检查该因数是否为质数。如果是,则将其乘以该数,然后返回乘积变量。

Input: n = 10
Output: 10

解释

这里,输入数字是10,它只有2个质因数,分别是5和2。

因此它们的乘积是10。

使用循环从i = 2到n,并检查i是否为n的因数,然后检查i本身是否为质数,如果是,则将乘积存储在product变量中,并继续此过程直到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;
}

更新于:2019年8月19日

322 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.