Números abundantes X82314


Statement
 

pdf   zip

html
  1. Diseña una función sumdivisores(n) que dado el int n>0 devuelva la suma de todos sus divisores.

    Se pide hacer una función eficiente que compruebe la mínima cantidad de posibles divisores, evitando resultados triviales y aprovechando el cálculo de la raiz cuadrada.

  2. Un número es abundante cuando la suma de sus divisores supera 2n.

    Diseña una función abundante(n) que detecte si un int 0<n es abundante.

  3. Diseña una función abundantes_consecutivos(desde, hasta), que dados dos int 0<desde<hasta cuente cuántos números desde<=x<hasta abundantes hay tales que x+1 es también abundante.
  4. Diseña una función primer_consecutivo(desde, hasta), que dados dos int 0<desde<hasta devuelva el primer número abundante desde<=x<hasta tal que x+1 es también abundante. Si no hay ninguno devuelve -1.

Siempre que sea posible hay que utilizar las funciones de los apartados previos.

Puntuación

Apartado 1: 40 puntos

Apartado 2: 15 puntos

Apartado 3: 20 puntos

Apartado 4: 25 puntos

Sample session
>>> sumdivisores(12)
28
>>> sumdivisores(220)
504
>>> abundante(40)
True
>>> abundante(45)
False
>>> abundantes_consecutivos(5000, 10000)
3
>>> primer_consecutivo(5000, 10000)
5775
>>> primer_consecutivo(6000, 7000)
-1
Information
Author
InfBesos
Language
Spanish
Official solutions
Python
User solutions
Python