La Distribución de los Números Primos 

LOS NÚMEROS PRIMOS COMO UNA ESCALERA INFINITA:
Los números primos son los átomos de los números: las partículas elementales de las matemáticas. Cualquier número entero positivo puede obtenerse como la multiplicación de primos. Por definición son aquellos naturales (excluyendo el 1) que sólo son divisibles entre 1 y ellos mismos. No es difícil listar los primeros:

2, 3, 5, 7, 11, 13, 17, 19, .... 

Los usamos todo el tiempo en la vida diaria para sumar quebrados, encontrar mínimo común múltiplo, máximo común divisor, factorizar, etc. Los matemáticos siempre han estado interesados en ellos; hoy hay científicos de la computación y hasta físicos interesados en su estudio.
Algunas propiedades de éste conjunto son bien conocidas. El 2 es el único que es par, cualquier otro par es divisible entre el 1, el 2 y él mismo, con lo cual se sale de la definición. Otra propiedad del conjunto es que es infinito. La primera demostración de ésto se debe al matemático griego Euclides y tiene unos 2300 años. Analizando listas grandes de primos, es posible ver que, a medida que el tamaño de los números se incrementan, los primos disminuyen. Ésto es intuitivamente claro si pensamos que entre más predecesores tenga un entero, más posibles divisores tiene.
La siguiente gráfica muestra el comportamiento de los número primos acumulados desde el 1 hasta el 100.

La gráfica de los primos acumulados hasta el número 100. 25 son primos


Aquí se observa que siguen una distribución más o menos suave o predecible. No hay saltos o escalones muy pronunciados. La gráfica comienza con el natural 1. En 1 no tenemos ningún primo; sigue en 2, y en ese momento hay uno (el 2); 3, y ese es el segundo; 4, y seguimos teniendo 2 primos, porque 4 es un número compuesto (2 x 2 = 4); 5, el tercero; 6, también compuesto (3 x 2 = 6) y por lo tanto seguimos en 3; 7, el cuarto primo, etc. En el eje horizontal de la gráfica, se muestran todos los enteros desde 1 hasta 100; y en el eje vertical los primos acumulados. Pero analizar el comportamiento de los primeros 100 números naturales (los números 1, 2, 3, 4, 5, 6, 7, …..), que incluyen 25 números primos, no es para nada representativo del comportamiento de todo el conjunto. Para ir un poco más lejos, podemos hacer uso de un programa de computadora como el siguiente, en lenguaje Java:

Este archivo debe llamarse UsaEratostenes.java

import java.util.Scanner;

public class UsaEratostenes
 {  // Abre clase UsaEratostenes
 public static void main(String args[])
 {  // Abre main

 // Se crea un Objeto de tipo Eratostenes
 Eratostenes miObjeto = new Eratostenes();
 
 // Se llama al metodo Principal
  miObjeto.Principal(); 
 }  // Cierra main
 
 }  // Cierra clase UsaEratostenes

El siguiente archivo debe llamarse Eratostenes.java

 /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   +                          CRIBA DE ERATOSTENES                            +
   + Este programa muestra numeros primos obtenidos mediante el algoritmo de  +
   + Eratostenes.                                                             + 
   + ENTRADA: No requiere entrada                                             + 
   + SALIDA: Numeros primos                                                   + 
   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

  /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   *                                ALGORITMO:                                *
   * Los numeros de 2 a N se consideran todos primos en un principio          *
   *                                                                          * 
   * Desde j = 2 hasta N - 1                                                  *
   *   Desde k = j hasta N/j                                                  *
   *     El Numero k*j se considera no primo.                                 *  
   *                                                                          *
   * Recorre de nuevo todo el arreglo desde 2 a N y cuenta los primos         *
   *                                                                          *
   * Imprime los numeros primos acumulados hasta el elemento actual del       *
   * arreglo                                                                  *
   +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
  
 public class Eratostenes
 {   // Abre clase Eratostenes
 private int Tamano_Arreglo = 1000000;
 //Basta cambiar este numero para obtener
 // los primos hasta ese limite

 /////////////////////////////////////////////
 // METODO PRINCIPAL
 /////////////////////////////////////////////

 public void Principal()

 { //ABRE PRINCIPAL 
 boolean Arreglo[];
 Arreglo = new boolean[Tamano_Arreglo + 1];
 for ( int i = 1; i < Tamano_Arreglo; i++ )
 Arreglo[i] = true; //EN PRINCIPIO TODOS LOS NUMEROS SE CONSIDERAN PRIMOS

 for ( int j = 2; j <= Tamano_Arreglo; j++ )
 if ( true == Arreglo[j] ) // Para numeros grandes este if hace una 
                           // diferencia de tiempo importante
 for ( int k = 2; k <= (Tamano_Arreglo)/j; k++ )
 Arreglo[k*j] = false;

 // Se llama al metodo Imprime
 Imprime( Arreglo, Tamano_Arreglo );

 } //CIERRA PRINCIPAL 

 //////////////////////////////////////////////
 // IMPRIME
 //////////////////////////////////////////////

 public void Imprime( boolean A[], int Tamano )

 { //ABRE IMPRIME

 int acumulado = 0; 

 for ( int n = 2; n <= Tamano; n++ )
 { //ABRE FOR
  
 if ( true == A[n] )
 {
 acumulado++;
 }
 System.out.printf("%d\n", acumulado);
 } //CIERRA FOR
 
 System.out.printf("\n");
 } //CIERRA IMPRIME  

 }   // Cierra clase Eratostenes

El código consta de dos archivos, uno con la clase principal, llamado UsaEratostenes.java y otro llamado Eratostenes.Java. Ambos deben guardarse con esos nombres. Si no sabe programar, o no conoce Java, no importa. Es solo un trabajo de calculadora. Lo que estamos haciendo es encontrar los números primos hasta cierto natural, identificado con el nombre Tamano_Arreglo, con el viejo algoritmo de la criba de Eratóstenes. A partir de ahí empezamos a contar desde el número 2 cuántos primos hay acumulados, exactamente lo que hicimos arriba, y luego graficamos. La siguiente figura muestra un análisis del primer millón de naturales, que contienen 78498 primos

El comportamiento de los primos acumulados hasta el primer millón de naturales. 78498 son primos.


Y de nuevo parece que los primos están distribuidos de manera que no hay acumulaciones de muchos de ellos en un intervalo corto de enteros, lo cual se vería reflejado en cambios abruptos de tipo escalón. Éste tipo de análisis los empezó a hacer el matemático alemán Karl Friedrich Gauss, con el pequeño inconveniente de que no tenía a su disposición una computadora. Así que los estudios de Gauss eran más bien tardados. Sin embargo, a cambio de una computadora, tenía uno de los cerebros más aptos para las matemáticas que ha dado la humanidad. Fue capaz de darse cuenta de lo siguiente:
1) Entre los números 1 y 10 hay 4 primos, lo cual equivale, más o menos, a la mitad de todos los enteros contenidos en ese intervalo.
2) Entre 1 y 100 hay 25 primos, lo cual equivale a 1/4 de los enteros en el conjunto.
3) Entre 1 y 1000 hay 169 primos, lo cual equivale a 1/6 de los enteros
4) Entre 1 y 10000 hay 1229, que equivalen, aproximadamente a 1/8 del total de enteros.
5) Entre 1 y 100000 hay 9592 primos, que son aproximadamente 1/10
6) Entre 1 y 1000000 hay 78498 primos, o 1/12.
El problema con éste análisis, es que, incluso para 1 millón, no podemos decir que sea el comportamiento típico. Los números primos son infinitos.