Iteracions while P30196


Statement
 

pdf   zip

Es demanen els codis de diverses funcions. Atenció: no utilitzeu el mòdul math.

  1. Programeu una funció entera @int_root(n)@ que donat un nombre natural nn retorni n\lfloor \sqrt {n} \rfloor.

  2. Programeu una funció @int_log(a, b)@ que donats els nombres naturals aa més gran que un i bb més gran que zero retorni el natural kk tal que akb<ak+1a^k \le b < a^{k + 1}.

  3. Programeu una funció @gcd_lcm(a, b)@ que donats els nombres naturals aa and bb tals que a0a \not= 0 o b0b \not= 0 retorna el màxim comú divisor i el mínim comú múltiple. El vostre codi ha d’implementar l’algoritme d’Euclides.

  4. Programeu una funció @is_prime(n)@ que donat un nombre natural nn retorna True si i només si nn és primer.

  5. Per poder participar en els jocs de taula del casino es necessita adquirir fitxes (tokens). El tokens vermells costen 77 euros i els grocs 44 euros. Programeu una funció @buy_tokens(n)@ que donat un nombre nn d’euros (nn \ge 20), retorna l’equivalència en tokens. Quan diverses equivalències són possibles la funció retorna la que minimitza el nombre total de tokens.

  6. Programeu una funció string @max_overlap(s, t) @ que donats dos strings ss i tt retorna el string més llarg que és un prefix comú de ss i tt.

Puntuació

La primera funció val 15 punts. La resta val 17 punts cadascuna.

Exemple de sessió

Sample session
>>> int_root(19)
4
>>> int_log(3, 20)
2
>>> gcd_lcm(12,18)
(6, 36)
>>> is_prime(51)
False
>>> buy_tokens(50)
(6, 2)
>>> max_overlap('bugs', 'bunny')
bu
Information
Author
Jorge Castro
Language
Catalan
Other languages
English Spanish
Official solutions
Python
User solutions
Python