Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


numeros abundantes, Ejercicios de Informática

Ejercicio de jutge resuelto

Tipo: Ejercicios

2019/2020

Subido el 27/10/2021

mapuzu
mapuzu 🇪🇸

5

(1)

23 documentos

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
def sumdivisores(n):
"""
>>> sumdivisores(12)
28
>>> sumdivisores(220)
504
"""
if n == 1:
return 1
elif n == 2:
return 3
elif n == 3:
return 4
s = n + 1
for d in range(2, n):
if (d * d) == n:
return s + (n // d)
elif (d * d) > n:
return s
elif (n % d) == 0:
s = s + d + (n // d)
return s
def abundante(n):
"""
>>> abundante(40)
True
>>> abundante(45)
False
"""
return sumdivisores(n) > 2 * n
def abundantes_consecutivos(desde, hasta):
"""
>>> abundantes_consecutivos(5000, 10000)
3
"""
cont = 0
for n in range(desde, hasta):
if abundante(n) and abundante(n + 1):
cont += 1
return cont
def primer_consecutivo(desde, hasta):
"""
>>> primer_consecutivo(5000, 10000)
5775
>>> primer_consecutivo(6000, 7000)
-1
pf2

Vista previa parcial del texto

¡Descarga numeros abundantes y más Ejercicios en PDF de Informática solo en Docsity!

def sumdivisores(n): """

sumdivisores(12) 28 sumdivisores(220) 504 """ if n == 1: return 1 elif n == 2: return 3 elif n == 3: return 4 s = n + 1 for d in range(2, n): if (d * d) == n: return s + (n // d) elif (d * d) > n: return s elif (n % d) == 0: s = s + d + (n // d) return s def abundante(n): """ abundante(40) True abundante(45) False """ return sumdivisores(n) > 2 * n def abundantes_consecutivos(desde, hasta): """ abundantes_consecutivos(5000, 10000) 3 """ cont = 0 for n in range(desde, hasta): if abundante(n) and abundante(n + 1): cont += 1 return cont def primer_consecutivo(desde, hasta): """ primer_consecutivo(5000, 10000) 5775 primer_consecutivo(6000, 7000)

cont = 0 for n in range(desde, hasta): if abundante(n) and abundante(n + 1): return n return - if name == 'main': import doctest print(doctest.testmod())