online: 6; azi: 1181; total: 53187 Manual clasa a ix a - Algoritmi - Algoritmi de testare daca un numar natural este prim

Manual clasa a IX a

Algoritmi

Algoritmi de testare daca un numar natural este prim

Să se afişeze descompunerea unui număr natural par, strict mai mare decât 2, într-o sumă de două numere prime (verificarea ipotezei lui Goldbach ).
# include < iostream >
using namespace std ;
int main ()
{
int numar , j;
bool este_prim ;
cout << " Introduceti un numar par mai mare decat 2: " ;
cin >> numar ;
while ( numar <= 2 || numar % 2 != 0 ) // verificam daca numarul este par si mai mare decat 2
{
cout << " Numarul introdus nu este un numar par mai mare decat 2. Introduceti alt numar : " ;
cin >> numar ;
}
for ( int i = 2 ; i <= numar / 2 ; i++) // parcurgem intervalul [2, numar /2] si cautam doua numere prime a caror suma sa fie egala cu numarul dat
{
este_prim = true ;
for (j = 2 ; j <= i / 2 ; j++) // verificam daca primul numar este prim
{
if (i % j == 0 )
{
este_prim = false ;
break ;
}
}
if ( este_prim ) // daca primul numar este prim, verificam daca numarul format din diferenta dintre numarul dat si primul numar este si el prim
{
este_prim = true ;
int diferenta = numar - i;
for (j = 2 ; j <= diferenta / 2 ; j++)
{
if ( diferenta % j == 0 )
{
este_prim = false ;
break ;
}
}
if ( este_prim ) // daca am gasit doua numere prime a caror suma este egala cu numarul dat, le afisam
{
cout << numar << " = " << i << " + " << diferenta << endl ;
}
}
}
return 0 ;
}

Programul citeste de la tastatura un numar par mai mare decat 2, si verifica daca este par si mai mare decat 2. Daca nu este, cere introducerea altui numar . Dupa ce se introduce un numar par corect, programul parcurge intervalul [2, numar /2] și caută două numere prime a căror sumă este egală cu numărul dat.
Pentru fiecare număr din interval, programul verifică dacă este prim și dacă da, calculează diferența dintre numărul dat și primul număr. Dacă și diferența este primă, programul afișează descompunerea numărului dat într-o sumă de două numere prime.