0votos

Numero Vampiro en Haskell

por josejuan hace 2 años

Forma obvia y leeeeeenta de generar vampiros.

Dado un numero retornar "Si" o "No" dependiendo si es o no un numero vampiro

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
esVampiro n = r ≡ 0 ∧ (¬ ∘ null) [() | (x, y) ← ((read ××× read) ∘ splitAt d) ↥ permutations ds, x `mod` 10 + y `mod` 10 ≢ 0, x × y ≡ n ] 
  where ds = show n 
        sz = length ds 
        (d, r) = sz `divMod` 2 
 
{- 
 
-- obtener los primeros 10 vampiros le toma 31 larguísimos segundos 
[josejuan@centella centella]$ time -f "%E, %M" ../vampiros 10 
1260 
1395 
1435 
1530 
1827 
2187 
6880 
102510 
104260 
105210 
0:31.02, 5356 
 
-} 
1 comentario
0votos

Escrito por AverageUser hace 2 años

Hay formas de solucionarlo mas rapido en todo caso.

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.