0votos

SERIE Fibonacci en Haskell

por josejuan hace 4 años

Conjetura: empezando en el fibonaci #2 y un salto de 3, incrementando el índice con el salto o multiplicando el salto por 2, obtenemos siempre un fibonacci con más divisores que todos los anteriores. En poco más de un minuto, se obtiene que el fibonacci #262 tiene 589824 divisores.

buscar el primer numero fibonacci que contenga 1000 divisores ejemplo el 3 tiene 2 divisores el 1 y el 3 y pertenece a la serie fibonacci el desafió es buscar el primer numero de la serie fibonacci que sea divisible por 1000 números

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Data.Numbers.Primes 
import Data.List 
 
ndivs :: Integral a => a -> Int 
ndivs = product . map ((+1).length) . group . primeFactors 
 
fibs :: Integral a => [a] 
fibs = f 0 1 where f a b = c: f b c where c = a + b 
 
maxdivs :: [(Int, Int)] 
maxdivs = (0, 1): (1, 2): (4, 4): n 4 6 4 
          where n idx jump maxdivs 
                  | divs > maxdivs = (idx', divs): n idx' jump divs 
                  | otherwise      = n idx (jump + jump) maxdivs 
                  where idx' = idx + jump 
                        divs = ndivs $ fibs!!idx' 
 
main = mapM_ print maxdivs 
 
{-- Ejecución (la posición del fibonacci y su número de divisores) 
 
(0,1) 
(1,2) 
(4,4) 
(10,15) 
(16,16) 
(22,72) 
(34,160) 
(46,336) 
(58,960) 
(70,1536) 
(82,1920) 
(94,3072) 
(106,3200) 
(118,36864) 
(166,110592) 
(214,122880) 
(262,589824) 
... 
 
--} 
1 comentario
0votos

Escrito por rblack hace 4 años

hola jose juan mira este es un juego de programación que consta de 3 etapas q se desarrollan ahi se encuentran dos de los ejercicios que subi
a la pagina aquí va el link

http://challenge.foris.cl/

etapa 1 : respuesta palabra clave : orro
etapa 2 respuesta numero de 1000 divisores : 498454011879264 //respuesta al ejercicio fibonacci
etapa 3 no me sale :( por eso pedí ayuda




ahí te dejo esos juegos
saludos ,

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.