0votos

imprimir números primos desde 2 hasta 1000 en Haskell

por josejuan hace 2 años

Los números primos son aquellos números naturales sólo divisibles por la unidad y por ellos mismos o, de forma equivalente, aquellos que no son divisibles por ningún número mayor que 1 y menos que él mismo.

Imprimir todos los números primos desde el 2 hasta el 1000 inclusive

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
esPrimo :: ℤ → 𝔹 
esPrimo    n = null [d | d ← [2 … n-1], n `mod` d ≡ 0] 
{-   :     :    :    :        :    :              : 
     :     :    :    :        :    :              : 
     :     :    :    :        :    :              : 
Será primo n    :    :        :    :              : 
                :    :        :    :              : 
           si ningún d        :    :              : 
                              :    :              : 
                        entre 2 y n-1             : 
                                             lo divide 
-} 
 
 
primos_entre a b = filter esPrimo [a … b] 
 
 
 
{- 
 
> primos_entre 2 1000 
[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,1 
91,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,39 
7,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617 
,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857, 
859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997] 
 
-} 
2 comentarios
0votos

Escrito por AverageUser hace 2 años

Basta con poner de 2 hasta (parte entera de sqrt(2))
0votos

Escrito por AverageUser hace 2 años

hasta (parte entera de sqrt(N))

.. perdon

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.