Informatică, întrebare adresată de anamaria0529, 8 ani în urmă

Sa se genereze toate numerele prime de trei cifre cu proprietatea ca prefixele lor sunt de asemenea numere prime,c++

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

bool prim(int n) {

 if (n <= 1) {

   return false;

 }

 else if (n != 2 && n % 2 == 0) {

   return false;

 }

 for (int i = 3; i * i <= n; i += 2) {

   if (n % i == 0) {

     return false;

   }

 }

 return true;

}

int main() {

   for (int i = 100; i <= 999; ++i) {

       //Verificam daca i este prim

       if (prim(i)) {

           bool ok = true;

           int ci = i;

           while (ci > 0) {

               //verificam daca fiecare prefix al lui i este de asemenea prim

               if (!prim(ci)) {

                   ok = false;

               }

               ci /= 10;

           }

           if (ok) {

               cout << i << " ";

           }

       }

   }

   return 0;

}

  • Explicatie: Ne folosim de un subprogram ajutator prim. Daca un numar este prim atunci incepem sa ii verificam prefixele. Daca un singur prefix nu este prim atunci variabila ok devine false. In final daca ok a ramas true atunci afisam numarul, deoarece este un numar "bun". (numar bun = respecta cerinta)
Alte întrebări interesante