用C ++查找给定乘积的两个不同质数
在本教程中,我们将讨论一个程序,以查找给定乘积的两个不同的质数。
为此,我们将提供一个整数值。我们的任务是找到两个素数整数值,以使它们的乘积等于给定值。
示例
#include <bits/stdc++.h>
using namespace std;
//生成小于N的质数
void findingPrimeNumbers(int n, bool calcPrime[]) {
calcPrime[0] = calcPrime[1] = false;
for (int i = 2; i <= n; i++)
calcPrime[i] = true;
for (int p = 2; p * p <= n; p++) {
if (calcPrime[p] == true) {
for (int i = p * 2; i <= n; i += p)
calcPrime[i] = false;
}
}
}
//打印有效的质数对
void calcPairPrime(int n) {
int flag = 0;
bool calcPrime[n + 1];
findingPrimeNumbers(n, calcPrime);
for (int i = 2; i < n; i++) {
int x = n / i;
if (calcPrime[i] && calcPrime[x] and x != i and x * i == n) {
cout << i << " " << x;
flag = 1;
return;
}
}
if (!flag)
cout << "No prime pair exist";
}
int main() {
int n = 24;
calcPairPrime(n);
return 0;
}输出结果
No prime pair exist