# PBinfo #3081 – TrucatableLeft – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

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ât 1.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.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
bool prim(int x) {
    if (x < 2) return false;
    if (x != 2 && x % 2 == 0) return false;
    for (int d = 3; d * d <= x; d = d + 2)
        if (x % d == 0) return false;
	return true;
}
int nrcif(int x) {
    int contor = 0;
    while (x)
        contor++, x = x / 10;
    return contor;
}
int putere10(int x) {
    int contor = 1;
    for (; x; x--)
        contor = contor * 10;
    return contor;
}
void primacifra(int &n) {
    if (n < 9) {
        n = 0;
        return;
    } int cifre = nrcif(n);
    n = n % putere10(cifre - 1);
}
int main() {
    int n; cin >> n;
    bool adv = true;
    while (n) {
        if (!prim(n)) adv = false;
        primacifra(n);
    }
    if (adv) cout << "DA";
    else cout << "NU";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3081)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3081/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3081/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
