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.
Entrada
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.
Observacions
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