Números abundantes impares
Definir la lista
abundantesImpares :: [Integer]
cuyos elementos son los números abundantes impares. Por ejemplo,
λ> take 12 abundantesImpares [945,1575,2205,2835,3465,4095,4725,5355,5775,5985,6435,6615]
Definir la lista
abundantesImpares :: [Integer]
cuyos elementos son los números abundantes impares. Por ejemplo,
λ> take 12 abundantesImpares [945,1575,2205,2835,3465,4095,4725,5355,5775,5985,6435,6615]
Definir la función
todosPares :: Integer -> Bool
tal que todosPares n
se verifica si todos los números abundantes menores o iguales que n
son pares. Por ejemplo,
todosPares 10 == True todosPares 100 == True todosPares 1000 == False
Un número natural n se denomina abundante si es menor que la suma de sus divisores propios. Por ejemplo, 12 es abundante ya que la suma de sus divisores propios es 16 (= 1 + 2 + 3 + 4 + 6), pero 5 y 28 no lo son.
Definir la función
numerosAbundantesMenores :: Integer -> [Integer]
tal que numerosAbundantesMenores n
es la lista de números abundantes menores o iguales que n
. Por ejemplo,
numerosAbundantesMenores 50 == [12,18,20,24,30,36,40,42,48] numerosAbundantesMenores 48 == [12,18,20,24,30,36,40,42,48] length (numerosAbundantesMenores (10^6)) == 247545
Un número natural n se denomina abundante si es menor que la suma de sus divisores propios. Por ejemplo, 12 es abundante ya que la suma de sus divisores propios es 16 (= 1 + 2 + 3 + 4 + 6), pero 5 y 28 no lo son.
Definir la función
numeroAbundante :: Int -> Bool
tal que numeroAbundante n
se verifica si n
es un número abundante. Por ejemplo,
numeroAbundante 5 == False numeroAbundante 12 == True numeroAbundante 28 == False numeroAbundante 30 == True numeroAbundante 100000000 == True numeroAbundante 100000001 == False
Un números entero positivo es perfecto es igual a la suma de sus divisores, excluyendo el propio número. Por ejemplo, 6 es un número perfecto porque sus divisores propios son 1, 2 y 3; y 6 = 1 + 2 + 3.
Definir la función
perfectos :: Integer -> [Integer]
tal que perfectos n
es la lista de todos los números perfectos menores o iguales que n
. Por ejemplo,
perfectos 500 == [6,28,496] perfectos (10^5) == [6,28,496,8128]
Definir la función
sumaDivisores :: Integer -> Integer
tal que sumaDivisores x
es la suma de los divisores de x
. Por ejemplo,
sumaDivisores 12 == 28 sumaDivisores 25 == 31 sumaDivisores (product [1..25]) == 93383273455325195473152000 length (show (sumaDivisores (product [1..30000]))) == 121289 maximum (map sumaDivisores [1..2*10^6]) == 8851392
Los triángulos aritméticos se forman como sigue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Definir las funciones
linea :: Integer -> [Integer] triangulo :: Integer -> [[Integer]]
tales que
linea n
es la línea n-ésima de los triángulos aritméticos. Por ejemplo,linea 4 == [7,8,9,10] linea 5 == [11,12,13,14,15] head (linea (10^20)) == 4999999999999999999950000000000000000001
triangulo n
es el triángulo aritmético de altura n
. Por ejemplo,triangulo 3 == [[1],[2,3],[4,5,6]] triangulo 4 == [[1],[2,3],[4,5,6],[7,8,9,10]]
Definir la función
euler6 :: Integer -> Integer
tal que euler6 n
es la diferencia entre el cuadrado de la suma de los n
primeros números y la suma de los cuadrados de los n
primeros números. Por ejemplo,
euler6 10 == 2640 euler6 (10^10) == 2500000000166666666641666666665000000000
Nota: Este ejercicio está basado en el problema 6 del proyecto Euler.
Definir la función
sumaDeCuadrados :: Integer -> Integer
tal que sumaDeCuadrados n
es la suma de los cuadrados de los primeros n
números; es decir, 1² + 2² + ... + n². Por ejemplo,
sumaDeCuadrados 3 == 14 sumaDeCuadrados 100 == 338350 length (show (sumaDeCuadrados (10^100))) == 300
Definir la función
suma :: Integer -> Integer
tal suma n
es la suma de los n
primeros números. Por ejemplo,
suma 3 == 6 length (show (suma (10^100))) == 200