fbpx

Problema #912 – PrimeVecine – Rezolvari PBInfo

de Mihai-Alexandru

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.

int sub(int n , int& a , int& b)
{
    for(int i = n-1 ; 1 ; --i)
    {
        int cnt=0;
        for(int j = 1 ; j * j <= i ; ++j)
        {
            if(i%j==0)
                cnt+=2;
            if(j*j==i)
                cnt--;
        }
        if(cnt==2)
        {
            a=i;
            break;
        }
    }
    for(int i = n +1 ; 1 ; ++i)
    {
        int cnt=0;
        for(int j = 1 ; j * j <= i ; ++j)
        {
            if(i%j==0)
                cnt+=2;
            if(j * j == i)
                cnt--;
        }
        if(cnt==2)
        {
            b=i;
            break;
        }
    }
    return a;
    return b;
}
Comentarii

S-ar putea sa iti placa