fbpx

Problema #2792 – Interval4 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Subprogramul interval are un singur parametru, n, prin care primește un număr natural (n∈ [3,106]). Subprogramul returnează cel mai mic număr natural x (n<x) care NU este prim, cu proprietatea că în intervalul [n,x] există un singur număr prim.

Scrieţi definiţia completă a subprogramului.

Exemplu

Dacă n=8, subprogramul returnează numărul 12.

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.

bool prim(int n)
{
    int cnt = 0;
    for(int d = 1 ; d * d <= n ; ++d)
    {
        if(n % d == 0)
            cnt+=2;
        if(d * d == n)
            cnt--;
    }
    if(cnt == 2)
        return 1;
    return 0;
}

int interval(int n)
{
    for(int i = n ; 1 ; ++i)
    {
        if(prim(i))
            return i+1;
    }
}
Comentarii

S-ar putea sa iti placa