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ă. 3
#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
.