fbpx

Problema #14 – Primalitate – Rezolvari PBInfo

de Mihai-Alexandru

Să se scrie o funcție C++ care verifică dacă un număr natural transmis ca parametru este prim.

Restricţii şi precizări

  • numele funcției scrise este prim
  • funcția are un parametru, număr natural; valoarea sa va fi mai mică decât 1000000000
  • rezultatul funcției este 1 dacă valoarea parametrului este număr prim, respectiv 0 în caz contrar

Important

Soluția propusă va conține doar funcția cerută. Introducerea în soluție a altor instrucțiuni poate duce la erori de compilare sau de execuție, care vor duce la depunctarea soluției.

bool prim(int n){

    int d = 2, cnt = 1;
    while(n > 1){
        int p = 0;
        while(n % d == 0)
            n /= d, p++;
        cnt *= (p + 1);
        d++;
        if(d * d > n)
            d = n;
    }

    return cnt == 2;

}
Comentarii

S-ar putea sa iti placa