| |

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.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *