Funció per als nombres prims P42922


Statement
 

pdf   zip   main.cc

html

En aquest problema, direm que un nombre n és prim en base b, amb b parell, si els dígits de n expressat en base b són tots estrictament més petits que b/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, 4 ≤ b ≤ 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++