# PBinfo #912 – PrimeVecine – Rezolvare C++

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

## Enunț

Cerinţa
Să se scrie o funcție C++ care, pentru un număr natural n transmis ca parametru, determină și întoarce prin intermediul unor parametri de ieșire cel mai mare număr prim mai mic decât n și cel mai mic număr prim mai mare decât n.

Restricţii şi precizări

numele funcției va fi sub
funcția va avea exact trei parametri, în această ordine:
	
primul parametru, n, reprezintă un număr natural, 3 ≤ n < 1.000.000.000
a și b sunt parametrii prin care funcția va întoarce cele două valori cerute, astfel:
		
a este cel mai mare număr prim mai mic decât n
b este cel mai mic număr prim mai mare decât n



Exemplu
Dacă n=28, apelul subprogramului va furniza prin parametrul a valoarea 23, iar prin b valoarea 29.

Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. 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 prim(int n) {
    if (n < 2) return 0;
    if (n % 2 == 0 && n > 2) return 0;
    for (int d = 3; d * d <= n; d = d + 2)
        if (n % d == 0) return 0;
	return 1;
}
void sub(int n, int &x, int &y) {
    x = n - 1; y = n + 1;
    while (!prim(x)) x--;
    while (!prim(y)) y++;
}
```

## Resurse

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