Un tema apasionante de la teoría de los números naturales es determinar cuantos números primos hay y la distribución de los mismos.
A pesar de que es un tema que ha sido estudiado profundamente por grandes matemáticos durante varios siglos (
Gauss ,
Legendre,
Jacques Hadamard ,
Charles de la Vallée Poussin,etc) áun hoy en día existen conjeturas e hipótesis pendientes de confirmar.
El siguiente programa en el lenguaje matemático
PARI-GP permite contar los números primos para un rango determinado de números, incluyendo aproximaciones desarrolladas para estimar esta cantidad : x/(log(x)-1 ) , Li(x) y R(x)
Adicionalmente indica el número de números primos especiales : twins , triplets, quadruplets , quintuplets y sextuplets
La última columna indica el porcentaje de primos en relación al rango correspondiente, pudiendo observarse que el mismo disminuye progresivamente.
A continuación un ejemplo de los resultados del programa:
x | pi(x) | Twins | Trip. | Quad. | Quint. | Sext. | x/(log(x)-1) | Li(x) | R(x) | pi(x)/x |
10 |
4 |
2 |
2 |
1 |
1 |
0 |
8 |
5 |
5 |
40 |
10^2 |
25 |
8 |
9 |
2 |
3 |
1 |
28 |
29 |
26 |
25 |
10^3 |
168 |
35 |
30 |
5 |
5 |
2 |
169 |
177 |
168 |
17 |
10^4 |
1229 |
205 |
112 |
12 |
9 |
2 |
1218 |
1245 |
1227 |
12 |
10^5 |
9592 |
1224 |
507 |
38 |
21 |
5 |
9512 |
9629 |
9587 |
10 |
10^6 |
78498 |
8169 |
2837 |
166 |
65 |
5 |
78030 |
78627 |
78527 |
8 |
10^7 |
664579 |
58980 |
17220 |
899 |
321 |
18 |
661459 |
664917 |
664667 |
7 |
10^8 |
5761455 |
440312 |
111156 |
4768 |
1383 |
82 |
5740304 |
5762208 |
5761552 |
6 |
10^9 |
50847534 |
3424506 |
759256 |
28388 |
7221 |
317 |
50701542 |
50849234 |
50847455 |
5 |
10^10 |
455052511 |
27412679 |
5425573 |
180529 |
40414 |
1613 |
454011971 |
455055614 |
455050683 |
5 |
Actualización 02/06/2019 : Otra versión del programa que utiliza la función nextprime(p) de pari-gp. Esta versión es más rápida que la anterior, no calcula contadores de twins,triplets,etc pero incluye una amplicación de la aproximación Li(x):
También incluyo un sencillo script en el lenguaje de cálculo matemático
ARIBAS, desarrollado por el Profesor
Dr. Otto Forster , de la Univ. LMU Munich. Los tiempos de ejecución son mayores a los del script en pari-gp (concretamente a partir de 10^8 , ya que el tiempo de cálculo pasa de 500seg a 11000seg, pudiendo interpretarse que el algoritmo utilizado es mucho mas lento a medida que se incrementa el número a validar) :
Un programa realmente eficiente para el cálculo de números primos es
primesieve de Kim Walisch.
Mediante este programa se han logrado varios records mundiales de conteo de números primos. La compilación en termux se puede hacer sin problemas.
Para tener un día de su eficiencia, el conteo de números primos, twins, triplets, quadruplets, quintuplets y sextuplets hasta 10^10 tomó 42seg en una tablet con cpu armv71 de 32bits a 1.344GH y utilizando un solo núcleo !!!.
El mismo cálculo en un PC con cpu AMD A10-8700P de 64 bits a 1.3GH utilizando los cuatro núcleos tomó 2.5 seg. , una relación 1:18
Los valores obtenidos fueron :
- Primes: 455052511
- Twin primes: 27412679
- Prime triplets: 5425573
- Prime quadruplets: 180529
- Prime quintuplets: 40414
- Prime sextuplets: 1613
A dia de hoy el mayor valor de pi(x) calculado es para 10^27 =
16352460426841680446427399