# PBinfo #1922 – Nmod25 – Rezolvare C++

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

## Enunț

Cerința
Se dau numerele naturale N și X. Aflați dacă N este divizibil cu 2X și dacă N este divizibil cu 5X.

Date de intrare
Fișierul de intrare nmod25.in conține numărul X și numărul N.

Date de ieșire
Fișierul de ieșire nmod25.out va conține pe prima linie mesajul DA dacă numărul este divizibil cu 2X sau NU dacă nu este divizibil, pe a două linie mesajul DA dacă numărul este divizibil cu 5X sau NU dacă nu este divizibil.

Restricții și precizări

N are cel mult 100.001 cifre
0 < X < 5

Exemplu:
nmod25.in

3
50008
nmod25.out

DA
NU
Explicație
50008 este divizibil cu 2 la puterea 3 dar nu si cu 5 la puterea 3.

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
#define ll long long
ll x, ind, a[100002], nr;
char s[100002];
int main()
{
    ifstream cin("nmod25.in");
    ofstream cout("nmod25.out");
    cin >> x;
    ll aux = x, d2 = 1 << x, d5 = 1;
    while (aux)
        d5 *= 5, aux--;
    while (cin >> s[++ind])
        a[ind] = s[ind] - 48;
    cin.close();
    for (int i = ind - x; i < ind; i++)
        nr = nr * 10 + a[i];
    if (nr % d2)
        cout << "NU\n";
        else cout << "DA\n";
    if (nr % d5)
        cout << "NU\n";
        else cout << "DA\n";
    cout.close();
    return 0;
}
```

## Resurse

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