Iteraciones while X38759


Statement
 

pdf   zip

Se piden los códigos de varias funciones. Atención, no uséis el módulo math.

  1. Programad una función entera @int_root(n)@ que dado un número natural nn retorne n\lfloor\sqrt{n}\rfloor.

  2. Programad una función @int_log(a, b)@ que dados los números naturales aa mayor que uno y bb mayor que cero retorne el natural kk tal que akb<ak+1a^k \le b < a^{k + 1}.

  3. Programad una función @gcd_lcm(a, b)@ que dados los números naturales aa and bb tales que a0a\not = 0 o b0b\not =0 retorna el máximo común divisor y el mínimo común múltiplo. Vuestro código ha de implementar el algoritmo de Euclides.

  4. Programad una función @is_prime(n)@ que dado un número natural nn retorna True si y sólo si nn es primo.

  5. Para poder participar en los juegos de mesa del casino se necesita adquirir fichas (tokens). Lo tokens rojos cuestan 77 euros y los amarillos 44 euros. Programad una función @buy_tokens(n)@ que dado un número nn de euros (n20n \ge 20), retorna la equivalencia en tokens. Cuando varias equivalencias son posibles la función retorna la que minimiza el número total de tokens.

  6. Programad una función @inv_factorial(n)@ que dado un entero n>1n > 1 retorna el número mm tal que (m1)!<nm!(m - 1)! < n \le m!.

Puntuación

La primera función vale 15 puntos. El resto vale 17 puntos cada una.

Ejemplo de sessión

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)
>>> inv_factorial(50)
5
Information
Author
Jorge Castro
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan English
Official solutions
Python
User solutions
Python