| |

Să se afişeze toate numerele prime de patru cifre care au inversul tot număr prim. 4

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

Similar Posts

Lasă un răspuns

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