Funció per als nombres prims P42922


Statement
 

pdf   zip   main.cc

En aquest problema, direm que un nombre nn és prim en base bb, amb bb parell, si els dígits de nn expressat en base bb són tots estrictament més petits que b/2b/2. Per exemple, 17 és prim en base 4, perquè s’expressa com 101. En canvi, 33 no és prim en base 4, perquè s’expressa com 201. Però 33 sí que és prim en base 10.

Escriviu una funció recursiva

    bool es_prim(int n, int b);

que digui si @n@ és o no prim en base @b@.

Precondició

Es compleix @n@ 1\ge 1, 44 \le @b@ 1000\le 1000, i que @b@ és parell.

Observació

Només cal enviar el procediment demanat; el programa principal serà ignorat.

Observació

Qualsevol solució que no sigui recursiva tindrà un zero de qualificació.

Public test cases
  • Input/Output

    es_prim(17, 4) → 1
    es_prim(33, 4) → 0
    es_prim(33, 10) → 1
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++