C++程式:查詢具有給定乘積的兩個不同質數
在本教程中,我們將編寫一個程式來查詢具有給定乘積的兩個不同質數。讓我們看一些例子。
輸入 − 21
輸出 − 3 7
在這裡,我們需要找到所有小於給定乘積的質數。一旦我們有了這些質數,我們就可以很容易地找到這對數。請按照以下步驟解決問題。
初始化一個乘積和一個布林陣列,用於儲存該範圍內的數字是否為質數。
找到所有小於給定乘積的質數,並將它們儲存在一個數組中。
迭代到給定乘積。
如果當前數字是質數,並且n / current_number也是質數,則檢查它們是否不同。
如果它們不同,則列印它們。
示例
讓我們看看程式碼。
#include <bits/stdc++.h> using namespace std; bool primes(int n, bool primeStatus[]) { primeStatus[0] = primeStatus[1] = false; for (int i = 2; i <= n; i++) { primeStatus[i] = true; } for (int i = 2; i * i <= n; i++) { if (primeStatus[i] == true) { for (int j = i * 2; j <= n; j += i) primeStatus[j] = false; } } } int main() { int n = 21; bool primeStatus[n + 1], pairsFound = false; primes(n, primeStatus); for (int i = 2; i < n; i++) { int pair = n / i; if (primeStatus[i] && primeStatus[pair] && pair != i && pair * i == n) { cout << i << " " << pair << endl; pairsFound = true; break; } } if (!pairsFound){ cout << "No pairs"; } return 0; }
輸出
如果您執行上述程式碼,您將得到以下結果。
3 7
結論
如果您在本教程中有什麼疑問,請在評論區提出。
廣告