Iteracions while P30196


Statement
 

pdf   zip

html

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 n retorni ⌊ √n ⌋ .
  2. Programeu una funció int_log(a, b) que donats els nombres naturals a més gran que un i b més gran que zero retorni el natural k tal que akb < ak + 1 .
  3. Programeu una funció gcd_lcm(a, b) que donats els nombres naturals a and b tals que a ≠ 0 o b ≠ 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 n retorna True si i només si n és primer.
  5. Per poder participar en els jocs de taula del casino es necessita adquirir fitxes (tokens). El tokens vermells costen 7 euros i els grocs 4 euros. Programeu una funció buy_tokens(n) que donat un nombre n d’euros ( n ≥ 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 s i t retorna el string més llarg que és un prefix comú de s i t .

Puntuació

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

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