Escriure una funció
prefix_mes_gran(n,cond) on donat un enter
positiu diferent de zero n i una funció
cond (que té un dígit com a paràmetre i
retorna un valor booleà), retorna el prefix més gran
d’n tal que tots els seus
dígits fan que cond retorni
True.
Un prefix d’un nombre és qualsevol seqüència de dígits consecutius del mateix nombre que comença pel dígit de més pes (per l’esquerra): els nombres 4, 45, 452, 4523, 45238, 452380 i 4523809 són tots prefixos del nombre 4523809.
Exemple: Suposem que n és 824673231 i
cond és
lambda d: d % 2 == 0 (retorna
True quan d
és parell). Aleshores
prefix_mes_gran(824673231,cond) ha de
retornar 8246, ja que qualsevol altre prefix més gran
ha d’incloure el 7, que no és parell i
cond(7) és
False.
Mireu els jocs de proves públics per a més exemples.
La funció té un nombre enter positiu diferent de zero i una funció (que donat un dígit retorna un booleà) com a paràmetres.
Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.
>>> prefix_mes_gran(94720, lambda d: d % 2 == 1) 9 >>> prefix_mes_gran(919321, lambda d: d % 2 == 1) 9193 >>> prefix_mes_gran(2025, lambda d: d % 2 == 1) 0 >>> prefix_mes_gran(2025, lambda d: d < 4) 202