# PBinfo #2795 – Resturi1 – Rezolvare C++

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

## Enunț

Cerința
Subprogramul resturi are patru parametri, n, x, y și r, prin care primește câte un număr natural din intervalul [1,109], r<x<y<n. Subprogramul returnează numărul de valori naturale din intervalul [1,n] pentru care atât restul împărțirii la x, cât și restul împărțirii la y, sunt egale cu r.

Scrieţi definiţia completă a subprogramului.

Restricții și precizări

1 ≤ r<x<y<n ≤ 109
ordinea parametrilor este n x y r

Exemplu
Pentru n=200, x=5, y=14 și r=2, subprogramul returnează numărul 3 (pentru numerele 2, 72 și 142 atât restul împărțirii la 5, cât și restul împărțirii la 14, este 2).

Important
Soluția propusă va conține definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.

## Cod sursă C++

```cpp
int resturi(int n, int x, int y, int r) {
    int cx = x, cy = y;
    while (cy != 0) {
        int cr = cx % cy;
        cx = cy;
        cy = cr;
    } long long int m = x / cx * y;
    int contor = n / m;
    if (r > 0  && contor * m + r <= n)
        contor++;
    return contor;
}
```

## Resurse

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