online: 8; azi: 341; total: 52347 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 primele n numere prime care au suma cifrelor mai mică decât un număr m, n şi m introducându -se de la tastatură .
# include < iostream >
using namespace std ;
int main ()
{
int n, m, numar , cifra, suma_cifre , temp_numar , contor = 0 ;
cout << " Introduceti numarul de numere prime dorite: " ;
cin >> n;
cout << " Introduceti limita sumei cifrelor: " ;
cin >> m;
cout << "Primele " << n << " numere prime cu suma cifrelor mai mica decat " << m << " sunt: " ;
numar = 2 ;
while (contor < n)
{
suma_cifre = 0 ;
temp_numar = numar ;
while ( temp_numar > 0 )
{
cifra = temp_numar % 10 ;
suma_cifre += cifra;
temp_numar /= 10 ;
}
bool este_prim = true ;
for ( int i = 2 ; i <= numar / 2 ; i++)
{
if ( numar % i == 0 )
{
este_prim = false ;
break ;
}
}
if ( este_prim && suma_cifre < m)
{
cout << numar << " " ;
contor++;
}
numar ++;
}
cout << endl ;
return 0 ;
}

Acest program foloseste variabile de tip intreg pentru toate datele si calcule, si nu foloseste functii .
Citeste de la tastatura numarul de numere prime dorite n si limita sumei cifrelor m . Parcurge secventa de numere naturale incepand cu numar = 2 , verificand pentru fiecare numar daca este prim si daca suma cifrelor sale este mai mica decat m .
Pentru a determina daca un numar este prim, se parcurge intervalul [2, numar /2] si se verifica daca numarul este divizibil cu vreun numar din acest interval. Daca se gaseste un astfel de numar , se seteaza variabila este_prim pe false si se iese din bucla, deoarece nu mai este necesar sa se continue verificarea.
Daca numarul este prim si suma cifrelor sale este mai mica decat m , se afiseaza numarul si se incrementeaza variabila contor . Bucla se executa pana cand s-au gasit primele n numere prime cu suma cifrelor mai mica decat m .