online: 10; azi: 689; total: 52695 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 toate numerele prime de patru cifre care au inversul tot număr prim.
# include < iostream >
using namespace std ;
int main ()
{
int numar , invers, cifra;
bool este_prim ;
cout << "Numerele prime de patru cifre care au inversul tot numar prim sunt: " ;
for ( numar = 1000 ; numar < 10000 ; numar ++)
{
invers = 0 ;
int temp_numar = numar ;
// calculam inversul numarului
while ( temp_numar != 0 )
{
cifra = temp_numar % 10 ;
invers = invers * 10 + cifra;
temp_numar /= 10 ;
}
if ( numar == invers) // numarul este palindrom
{
// verificam daca numarul este prim si daca inversul sau este prim
este_prim = true ;
for ( int i = 2 ; i <= numar / 2 ; i++)
{
if ( numar % i == 0 )
{
este_prim = false ;
break ;
}
}
for ( int i = 2 ; i <= invers / 2 ; i++)
{
if (invers % i == 0 )
{
este_prim = false ;
break ;
}
}
if ( este_prim )
{
cout << numar << " " ;
}
}
}
cout << endl ;
return 0 ;
}

Programul parcurge toate numerele de patru cifre și pentru fiecare număr calculează inversul acestuia. Apoi verifică dacă numărul este palindrom (egal cu inversul său).
Dacă numărul este palindrom, se verifică dacă numărul și inversul său sunt prime. Pentru a verifica dacă un număr este prim, se parcurge intervalul [2, număr/2] și se verifică dacă numărul este divizibil cu vreun număr din acest interval.
Dacă numărul și inversul său sunt prime, programul afișează numărul.
Bucla se execută până când se verifică toate numerele de patru cifre.