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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告