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; }
廣告