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
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
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă