Cerința
Un număr prim se numește trunchiabil-stânga dacă, prin eliminare repetată a primei cifre, toate numerele rezultate sunt prime.
Se dă un număr natural, să se verifice dacă numărul este prim trunchiabil-stânga.
Date de intrare
Programul citește un număr natural nenul n
.
Date de ieșire
Programul va afișa DA
dacă n
este prim trunchiabil-stânga, altfel va afișa NU
.
Restricții și precizări
n
este mai mic decât1.000.000
.- Cel mai mare prim trunchiabil-stânga este
357686312646216567629137
.
Exemplu 1:
Intrare
1223
Ieșire
DA
Exemplu 2:
Intrare
263
Ieșire
NU
Explicație
Exemplu 1: 1223
e prim. Eliminăm 1, 223
e prim. Eliminăm 2, 23
e prim. Eliminăm 2, 3
e prim.
Deci, numărul 1223
e prim trunchiabil-stânga.
Exemplu 2: 263
e prim. Eliminăm 2, dar 63
nu e prim.
Deci, 263
nu e prim trunchiabil-stânga.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema TruncatableLeft:
#include <iostream>
using namespace std;
bool is_prime(int x){
if(x < 2)
return 0;
if(x != 2 && x % 2 == 0)
return 0;
for(int d = 3; d * d <= x; d += 2)
if(x % d == 0)
return 0;
return 1;
}
int nr_digits(int x)
{
int cnt = 0;
do{
x /= 10;
cnt++;
}
while(x);
return cnt;
}
int pow10(int x)
{
int r = 1;
for(;x;--x)
r *= 10;
return r;
}
void removeFirstDigit(int &n)
{
if(n < 9)
{
n = 0;
return;
}
int nrdig = nr_digits(n);
n = n % pow10(nrdig - 1);
}
int main()
{
int n; cin >> n;
bool pp = true;
while(n)
{
if(!is_prime(n))
pp = false;
removeFirstDigit(n);
}
cout << (pp ? "DA" : "NU");
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3081 TruncatableLeft
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3081 TruncatableLeft de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!