Doua numere prime impare consecutive se numesc numere prime gemene. Să se afişeze primele n perechi de numere prime gemene. C++ (fara vectori sau ceva de genu) DAU COROANA!!!!!!!!! SI 80 DE PUNCTE!!!!!URGENT CA AM TEST MAINE!!!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <cmath>
using namespace std;
// Functie care verifica daca un numar este prim
bool estePrim(int n)
{
// Daca n este egal cu 2, atunci este prim
if (n == 2)
return true;
// Daca n este egal cu 1 sau este par si diferit de 2, atunci nu este prim
if (n == 1 || (n % 2 == 0 && n != 2))
return false;
// Verificam daca n este divizibil cu orice numar intre 3 si radacina patrata din n
for (int i = 3; i <= sqrt(n); i += 2)
if (n % i == 0)
return false;
// Daca nu a fost gasit niciun divizor, atunci n este prim
return true;
}
int main()
{
// Numarul de perechi de numere prime gemene dorit
int n;
cout << "Numarul de perechi de numere prime gemene: ";
cin >> n;
// Contorul perechilor de numere prime gemene gasite
int contor = 0;
// Numarul curent pe care il verificam
int numar = 3;
// Afisam primele n perechi de numere prime gemene
while (contor < n)
{
// Daca numarul curent este prim
if (estePrim(numar))
{
// Daca urmatorul numar este, de asemenea, prim
if (estePrim(numar + 2))
{
// Afisam perechea de numere prime gemene
cout << numar << " si " << numar + 2 << endl;
contor++; // Incrementam contorul perechilor de numere prime gemene gasite
}
}
// Verificam urmatorul numar
numar += 2;
}
return 0;
}
În acest cod, funția estePrim utilizează un algoritm cunoscut pentru a verifica dacă un număr este prim sau nu. Apoi, în funcția main, se iterează de la 3 la infinit, verificând dacă fiecare număr este prim. Dacă un număr este prim, se verifică dacă următorul număr este, de asemenea, prim. Dacă ambele numere sunt prime, atunci se afișează perechea de numere prime gemene și se incrementează contorul perechilor de numere prime gemene gasite.