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
結論
如果您在本教程中有什麼疑問,請在評論區提出。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP