Modelos Probabilísticos de la Distribución de Números Primos. Proceso de Bertrand.

(Esta es una entrada en construcción, sujeta a modificaciones).

Lo reconozco, en esta ocasión el tema de la distribución de los primos me ha enganchado más que en anteriores ocasiones, en las que la curiosidad me duraba a lo  sumo dos tardes. No se cuanto me durará ahora, pero el caso es que sigo en un estado de curiosidad sobre este problema. En esta entrada nos centramos en un tema que hemos esbozado en la anterior y que pienso es el que de momento mantiene la llama encendida: los modelos probabilísticos de los números primos.

Es obvio que los primos se pueden generar por un proceso determinista: empecemos por el número 1,añadamos una unidad al número anterior y apliquemos un algoritmo de primalidad (cómo es sabido existen algoritmos eficientes, es decir que dado un número determinan en tiempo polinómico si es primo o no, tomando cómo tamaño el número de dígitos decimales). La pregunta es si existe un procedimiento más eficiente que el anterior. Sí, existe, pero aún muy lejos del ideal que sería, por ejemplo una función tal que dado un valor n (que expresaría la posición del primo en la secuencia de primos) nos de automáticamente el primo que se encuentra en esa posición (¿ y la inversa ?, es decir dado un primo cualquiera, poder determinar la posición que ocupa en la secuencia de primos) sin tener que pasar por los anteriores. Esto sería pedir demasiado: casi nadie cree a estas alturas que exista un proceso determinista que permita generar todos los primos y sólo los primos, es decir, que genere exactamente la distribución o secuencia de números primos. Se han propuesto múltiples funciones deterministas generadoras de primos (por ejemplo la función 6n+/-1, pero o bien son ruidosas (contienen números que no son primos) o bien son incompletas (no tengo claro todavía si existe una función que genere sólo primos, aunque no todos los primos) o ambas cosas.

Si pese a intensa búsqueda no se ha encontrado un proceso determinista y eficiente generador de primos, parecería interesante explorar la alternativa, es decir explorar la hipótesis de que la distribución de los números primos  tenga una estructura aleatoria o pueda ser simulada por procesos probabilísticos. ¿ Existe entonces algún modelo o proceso aleatorio que permita obtener, no la distribución de los primos exactamente pero si distribuciones que tengan las propiedades que sabemos que tienen la distribución de los primos. Es decir, ¿ podemos simular la distribución de los primos con procesos aleatorios ?

Nosotros, en la entrada anterior proponíamos, ingenuamente, un proceso aleatorio que supuestamente (todavía no lo hemos analizado y quizás, lo más probable, tras el análisis quede desechado) sería capaz de simular la distribución de números primos.  Decimos ingenuamente dado que lo hacíamos sin leer antes la literatura sobre esta cuestión (aunque ya anunciábamos que seguramente literatura sobre este tema debería de existir).

En esta entrada básicamente recopilamos y repasamos esta literatura (ya veremos que casi toda ella gira en torno a dos modelos, el de Cramer y el de Hawking, y sus refinamientos), entre otras cosas para ver si nuestro modelo aleatorio de pseudoprimos, al que hemos llamado Proceso de Bertrand (espero que no le importe que utilice su nombre:-), ya se ha descrito en la está en la literatura o si no está descrito todavía, si tiene sentido (tal y cómo está o refinado) o si debe de ser desechado. Cómo veremos este tema está ya muy trillado y de hecho su exploración ha dado varios de los avances más espectaculares de los últimos años en la Teoría de los Números Primos.

1. Las propiedades de la distribución de los números primos que cualquier modelo aleatorio debe de poder simular:

–Teorema de Euclides.

–Teorema de Hadamard-De la Vallée Poussin también llamado de Teorema fundamental de los Números Primos / Función Pi(x).

–Postulado (Teorema) de Bertand (Chebyshev).

Resultados y Conjeturas sobre Prime Gaps (cotas establecidas y conjeturas relativas al problema Erdos-Ranking: Cota de Erdos, Cota de Rankin, Cota de Goldston-Pintz-Yildirim, y el reciente resultado / breakthrough de Yitang Zhang sobre una Cota, aunque descomunal, por fin constante; por cierto, ya ha empezado la carrera para reducir esta constante,si es posible hasta dos: tras dos rebajas, ya está en torno a 59.500.000. ¿ Llegarán pronto hasta 2 ? Actualización 1: ¿ Pronto ? ¡ Joer ! Se despista uno un par de días y ya está en menos de 5.000.000. El objetivo de dos se va a quedar corto🙂. De momento medalla de oro para un tal Sutherland.Fin actualización. Actualización 2: bromas aparte, por lo visto con esta técnica de ataque sólo se puede llegar a un valor definitivo muy por encima del objetivo. Fin actualización 2. Actualización 3. Ya va por 10.000). Se trata de encontrar cual es la  diferencia mínima y máxima entre dos primos que se repita un número infinito de veces.

–Resultados y conjeturas sobre progresiones aritméticas de números primos (Teorema Green-Tao).  

Resultados y Conjeturas sobre Constelaciones de primos (y en concreto la conjetura sobre primos gemelos, primos primos, primos sexis, las conjeturas de Hardy-Littlewood (la primera sobre Pi2(x),  una generalización de la conjetura sobre primos gemelos y la segunda; no he tenido acceso al paper original).

–Ahora mismo no tengo claro si tiene sentido definir en este contexto (es decir en relación a los Procesos de Bertrand) los Casi Primos (Almost Primes).

2. Modelos probabilisticos de los primos.

Creo pertinente aclarar ahora que a los números que en los modelos probabilísticos se los declara cómo primos, se les llama Pseudoprimos. En los model

a) El modelo de Cramer.

Cuando se habla de modelos aleatorios de los primos hay que empezar por Cramer y concretamente los siguientes papers:

On the order of magnitude of differences between consecutive primes.

Según este modelo, y de acuerdo con el Teorema Fundamental de los Números Primos, la probabilidad de que el número que ocupa la posición n en la secuencia de número naturales sea primo es 1 / log n (log aquí sería el logaritmo natural). De acuerdo con esto, si mi interpretación es correcta, para simular la distribución de los primos, a cada posición le asociamos una urna, independiente de todas las anteriores y posteriores con log n bolas, todas menos 1 de color negro, y 1 de color rojo, la bola primo. Se haría una extracción de cada urna.

b) Refinamientos del modelo de Cramer.

Cómo señalan los autores indicados en la bibliografía, el modelo de Cramer tiene algunos defectos que saltan a la vista inmediatamente (por ejemplo que podría haber primos en posiciones pares) pero corregibles. Para ver cómo se corrigen estos defectos se deben de leer las referencias señaladas en la bibliografía.

Corrección de Maier.

Maier, en su paper de 1984 titulado Primes in short intervals, encontró una propiedad en la distribución de primos que no cumplía el modelo de Cramer:

In [11] H. Maier developed an ingenious method to show that for any A ≥ 1 there are arbitrarily large x such that the interval (x, x+(logx)^A) contains significantly more primes than usual (that is, ≥ (1+δA)(logx)^(A−1) primes for some δ A > 0) and also intervals (x, x + (logx)^A) containing significantly fewer primes than usual. 

Validez del modelo de Cramer-Maier.

¿ Es válido entonces el modelo de Cramer refinado, es decir el obtenido cómo producto de todas estas correcciones y refinamientos  ? ¿ Al implementar este proceso refinado se obtiene una distribución que simule correctamente (que tenga las propiedades señaladas anteriormente de) la distribución de los números primos ?

PDTE completar.

El modelo de Cramer cómo Proceso de Poisson.

Gallagher, en su paper de 1976 titulado On the distribution of primes in short intervals  (al que no he tenido acceso), demostró queIn 1976, Gallagher [5], [6] showed that a uniform version of the prime k-tuple conjecture of Hardy and Littlewood implies that the prime numbers are distributed in a Poisson distribution around their average spacing.

Comenta T. Tao en una de las entradas de su blog (Marker Lecture III) lo siguiente sobre el Modelo de Cramer:

To get some intuition as to what to expect, we turn to random models of the primes.  In particular, we begin withCramér’s random model for the primes, which asserts that the primes between N and 2N behave as if each integer in this range had an independent chance of about 1/\log N of being prime.

Standard probability theory then shows that the primes are distributed like a Poisson process of intensity 1/\log N.  In particular, if one takes an random interval I_\lambda in {}[N,2N] of length \lambda \log N for some \lambda > 0, the number of primes |I_\lambda \cap {\mathcal P}| that I_\lambda captures is expected to behave like a Poisson random variable of mean \lambda; in other words, we expect

{\Bbb P}( |I_\lambda \cap {\mathcal P}| = k ) \approx \frac{e^{-\lambda} \lambda^k}{k!} (2)

for k=0,1,2,\ldots.  (In contrast, the prime number theorem only gives the much weaker statement {\Bbb E} |I_\lambda \cap {\mathcal P}| = \lambda + o(1).)

Now, as discussed in previous lectures, Cramér’s random model is not a completely accurate model for the primes, because it does not reflect the fact that primes very strongly favour the odd numbers, the numbers coprime to 3, and so forth.  However, it turns out that even after one corrects for these local irregularities, the predicted Poisson random variable behaviour (2) does not change significantly for any fixed \lambda (e.g. a Poisson process of intensity 2/\log N on the odd numbers looks much the same as a Poisson process of intensity 1/\log N on the natural numbers, when viewed at scales comparable to \log N).  This computation was worked out fully by Gallagher as a rigorous consequence of the Hardy-Littlewood prime tuples conjecture.  (On the other hand, these corrections to the Cramér model do disrupt (2) for very large values of \lambda; see this paper of Soundararajan for more discussion.)

d) El modelo de Hawkins de criba aleatoria.

Se presenta en su paper de 1957 The random sieve. El  mismo autor publicó otro paper con el mismo título y de similar contenido en 1974 y cuyo abstrac aparece a continuación:

A proof is presented that the random sieve, a stochastic analogue of the sieve of Eratosthenes, generates sequences of numbers approximating the density of primes. The expected number En[h] of such numbers less than n satisfies

View the MathML source

and the actual number h(n), on any trial, approximates π(n) in the sense of the weak law of large numbers. Some additional results are given. 

El modelo propuesto por este autor es una versión aleatoria de la conocida Criba de Eratóstenes y sería cómo sigue: se marca el número 2 cómo primo y con probabilidad 1/2 se criban los números siguientes. Se marca el siguiente número no cribado, al que llamamos P2 cómo primo, y se inicia otro proceso de criba con probabilidad 1/P2. Se itera el proceso.

Según comenta el autor en la primera página, el conjunto de todas las posibles secuencias de números marcados cómo primos contiene a la secuencia de números primos cómo uno de sus miembros más frecuentes.   Este es el mínimo contraste que se puede pedir.

El lector puede ver una tesis reciente sobre este tipo de criba probabilística aquí. De esta tesis extraemos lo siguiente:

Hawkins has shown that random sequences satisfy ’the prime number theorem’ in the sence of the weak law of large numbers. Wunderlich [2] was able to show that the prime number theorem holds also in the sense of the strong law of large numbers. To do so, Wunderlich introduced a single probability space Ω = (X,F,µ) where X is the set of all sequences containing 2, F is contained in the power set 2 X and µ is defined so as to agree with Pn on Fn. All the results obtained by Hawkins can be obtained in Ω

Puedes ver el paper de Wunderlich aquí. Cómo se ve, aparte del enfoque probabilístico hay otras maneras de generalizar a los primos, cómo hizo por ejemplo Beurling.

Más sobre el modelo de Hawkins en este paper de 2006.

e) El proceso de Bertrand (¡ojo lector! este es el que propongo yo, y no está analizado todavía; léase por lo tanto este apartado con las correspondientes gafas de escepticismo).

e).1 Presentación.

Es posible que existan más modelos que los que ya hemos presentado, pero no aparecen en la literatura consultada. En lo que sigue presentamos el modelo que proponemos nosotros con el fin de analizarlo (es decir contrastar si la distribución obtenida simula correctamente la distribución de los primos) cuando tengamos más tiempo. El proceso está basado en el Postulado (Teorema) de Bertrand que afirma que para todo n, entre n y 2n hay al menos un primo.

Según esto, el Proceso de Bertrand en bruto, es decir sin refinar (y seguramente de pasarlos primeros contrastes habrá que refinarlo, al igual que hubo que refinar el Modelo de Cramer o desecharlo), sería:  partiendo de un primo cualquiera, se multiplica por dos, y en el intervalo entre estos dos números se selecciona al azar una posición. La que salga se marcará (por ejemplo coloreando en rojo) cómo número primo; el resto se marcará cómo no primo (por ejemplo coloreándolos en negro). Se repite el proceso partiendo de este nuevo “primo”. Si durante el proceso alguno de las posiciones que estaban coloreadas en negro son seleccionadas cómo posiciones de pseudoprimos, se las debe de recolorear en rojo. Este proceso sería Bertrand-1. Si cada vez seleccionamos dos pseudoprimos e iteramos a partir del segundo, hablaríamos de Bertrand-2.

Es importante tener en cuenta que  originalmente se me ocurrió este proceso no tanto para simular exactamente la distribución de los  primos, sino para obtener un modelo probabilístico peor caso y ver si dentro de este modelo peor caso, aún tiene sentido definir las conjeturas de la teoría de números primos y ver si se cumplen e incluso intentar demostrarlas. Por ello es posible que en el proceso Bertrand-1, al seleccionar sólo un número, esta distribución se quede corta. ¿ Y Bertrand-2 ? Se queda corta o es excesiva ?

Relevante para este modelo que proponemos (y quizás para invalidarlo) es el siguiente comentario de T.Tao en la ya citada entrada:

Indeed, consider the question of asking how likely it is that a randomly chosen number n between N and 2N is to be prime.  Well, n will have about a 1-\frac{1}{2} chance of being coprime to 2, a 1 - \frac{1}{3} chance of being coprime to 3, and so forth; the Chinese remainder theorem also suggests that these events behave independently.  Thus one might expect that the probability would be something like

\prod_{p < N} (1 - \frac{1}{p}).

We then invoke Mertens’ theorem, which provides the asymptotic

\prod_{p < N} (1 - \frac{1}{p}) = (e^{-\gamma} + o(1)) \frac{1}{\log N}. (4)

But this is off by a factor of e^{\gamma} from what the prime number theorem says the true probability of being prime is, which is (1+o(1)) \frac{1}{\log N}.

e)2. Análisis probabilístico del Proceso de Bertrand-1.

Primero hacemos el análisis para los naturales, señalando los defectos no sustanciales o que se podrán corregir más tarde y luego veremos, si tuviese  sentido refinarlo, os refinamientos más sustanciales.

Hay un primo inicial real p, y a partir de este primo a cada posición entre p y 2p se le asigna una urna con 2p-p-1 bolas (el restar 1 aquí ya supone que estamos considerando que en las posiciones pares no puede haber primos; no es sustancial y ya lo repararemos), todas negras menos una roja que representa al pseudoprimo.

En lo que sigue para simplificar hacemos Pi = 2pi-pi-1. Entonces al intervalo entre el primo (pseudoprimo) y su doble, estos dos excluidos, lo llamaríamos P1. El intervalo siguiente sería P2 etc…. Calculamos un ejemplo en el que el primer primo es 5:

–P(sólo 6). la probabilidad de que al final de todas las iteraciones que afectan al intervalo considerado (P1) este termine con la posición adyacente al primo inicial marcado y ningún otro número del intervalo marcado es de 1/P1*1/P2x, con 1/P2x siendo la probabilidad de que en el intervalo P2 salga en la segunda iteración un número que no pertenezca a P1. Entonces si el primer primo es 5, la probabilidad de que el intervalo de 5 a 10 excluidos (es decir el conjunto ordenado {6,7,8,9} termine sólo con el 6 marcado es de 1/4*2/5. (el intervalo P2, correspondiente a 6 cómo pseudoprimo inicial tiene 5 posiciones y 2 de ellas no son ni 7 ni 8 ni 9.

–P(sólo 7). la probabilidad de que el intervalo termine con un sólo un pseudoprimo  marcado en la segunda posición es 1/P1*1/P3x. Es decir 1/4*4/6.

–P(sólo 8). la probabilidad de que el intervalo termine con un sólo pseudoprimo marcado en la tercera posición es de 1/P1*P4x. Es decir 1/4*6/7.

–P(sólo 9). la probabilidad de que el intervalo termine con un sólo pseudoprimo marcado en la cuarta posición es de 1/4*8/8= 1/4.

–P(6,7), la probabilidad de que el intervalo termine con dos posiciones marcadas cómo pseudoprimos, siendo las dos la primera y la segunda es de 1/P1*1/P2*P3X es decir de 1/4*1/5*4/6.

–P(6,8) = 1/4*1/5*6/7

–P(6,9) = 1/4*1/5*8/8

–P(7,8) = 1/4*1/6*6/7

–P(7,9) =1/4*1/6*8/8

–P(8,9) =1/4*1/7*8/8

–P(6,7,8)=1/4*1/5*1/6*6/7

–P(6,7,9)=1/4*1/5*1/6*8/8

–P(6,8,9)=1/4*1/5*1/7*8/8

–P(7,8,9)=1/4*1/6*1/7*8/8

–P(6,7, 8,9)= 1/4*1/5*1/6*1/7*8/8.

Estos 15 estados son mutuamente excluyentes y por lo tanto la suma de sus correspondientes probabilidades tienen que sumar  1.

¿ A ver ?

((1/4)*(2/5)) + (1/4*4/6) + (1/4*6/7) + (
1/4*8/8) + (1/4*1/5*4/6) + (1/4*1/5*6/7) + (
1/4*1/5*8/8) + (1/4*1/6*6/7) + (1/4*1/6*8/8) + (1/4*1/7*8/8) + (
1/4*1/5*1/6*6/7) + (1/4*1/5*1/6*8/8) + (1/4*1/5*1/7*8/8) + (
1/4*1/6*1/7*8/8) + (1/4*1/5*1/6*1/7*8/8) = 1.

Correcto. De acuerdo con este procedimiento (que se deberá de refinar para corregir los errores evidentes, algunos ya señalados), para cada intervalo, podemos  calcular ya, en este modelo, la probabilidad de eventos más complejos, cómo por ejemplo las diferentes conjeturas de la teoría de números primos, cosa que haremos en las siguientes entradas.

¿ Que tipo de distribución es esta ? Parece la binomial (éxito=número marcado cómo pseudoprimo o de color rojo; fracaso=negro) con probabilidad P=1/2p-p-1, es decir con la probabilidad siendo la inversa del tamaño del intervalo considerado o para simplificar 1/p, con p el número desde el que se “empieza” el proceso. De confirmarse esto se confirmaría también lo que pensábamos: que esta distribución se queda corta para simular a la de los primos y por lo tanto podría ser adecuada para estudiar el peor caso (otra cosa es que se pueda demostrar que si un resultado es válido en este peor caso, lo es para el caso de la distribución real de los primos). Por otra parte ahora no  tengo claro si el Proceso de Cramer se queda largo  con respecto a la Distribución Real de los Primos o también corto.

En el artículo de Wikipedia sobre este tipo de distribución comentan:

Si n tiende a infinito y p es tal que el producto entre ambos parámetros tiende a \lambda \,\!, entonces la distribución de la variable aleatoria binomial tiende a una distribución de Poisson de parámetro \lambda.

Por último, se cumple que cuando n es muy grande (usualmente se exige que n \geq 30 ) la distribución binomial puede aproximarse mediante la distribución normal.

Veamos esto con más detalle comparando la probabilidad de varios eventos  según la Binomial y según el Proceso de Bertrand-1:

La Probabilidad de que en el intervalo [5-10] salgan 2 pseudoprimos, independientemente de la posición para cada tipo de proceso es:

–Binomial (n=4, p=1/4; P(2)): 6*(1/4)^2(1-1/4)^(4-2)=12*1/16*9/16 = 12*(0, 0351563)=0,219;  ¡ Ojo !  La binomial pura incluye configuraciones que no son posibles en los Procesos de tipo Bertrand: un secuencia de fracasos en todo el intervalo. Es posible que al corregir esto Bertrand y Binomial sean equivalentes.

Binomial Corregida: aplicando la formula de probabilidad condicional (6*(1/4)^2(1-1/4)^(4-2))/ (1-1/16) obtenemos un valor de 0, 2336 que es muy cercano al obtenido en Bertrand-1, aunque todavía diferente. ¿ Cual es el comportamiento asíntotico de la diferencia entre esta binomial corregida y bertrand ?

–Bertrand-1 (6,7 o 6,8 o 6,9 o 7,8 o 7,9 o 8,9) = (1/4*1/5*4/6) + (1/4*1/5*6/7) + (1/4*1/5*8/8) + (1/4*1/6*6/7) + (1/4*1/6*8/8) + (1/4*1/7*8/8) = 0,239286 >= 0,219. 

Cramer, si he calculado bien = 0,33213 >= 0,239286. He aplicado la formula binomial con p=1logn. Entiendo que  es correcto pero no estoy 100% seguro.

Podemos concluir que no dan el  mismo resultado. Bertrand-1 se queda menos corta que la Binomial pero más que Cramer. ¿ Cramer se queda corta o larga con respecto a la real de primos ? (quizás el lector se pregunte que entiendo por quedarse corta o larga; más o menos que de media,  en el intervalo medio aparezcan asíntoticamente más o  menos pseudoprimos que en la distribución de primos real; dado que Cramer se basa en el Teorema de los Números Primos en teoría debería no fallar mucho en este respecto, pero no sé si falla por arriba, por abajo u oscila). Nos queda analizar Bertrand-2.

e) 3. Análisis Probabilístico Bertrand-2. 

PDTE.

3. Referencias.

Para documentarse sobre este tema sin necesidad de acudir a las fuentes primarias una puede empezar (y casi terminar) con los papers y presentaciones de T.Tao titulados:

–Structure and Randomness in the prime numbers y

–Recent Progress in additive prime number theory

Además de las entradas en su blog What´s New dónde publicaba las Marker lectures.

Muy interesante también el post sobre esta cuestión en el blog In Theory.

Una entrada sobre este tema en mathstackexchange. Y otra en el mismo sitio de pregunta y respuestas. Y otra, en este caso en Mathoverflow. Cómo se ve el utilizar modelos aleatorios para estudiar conjeturas sobre la distribución de primos es una idea bastante frecuente y también lo son los modelos en concreto (en una de las entradas un comentarista un modelo de criba aleatoria similar al de Hawkins y en otra otro comentarista propone un modelo similar al de Cramer, desconociendo este).

79 comentarios to “Modelos Probabilísticos de la Distribución de Números Primos. Proceso de Bertrand.”

  1. Victor Luis Says:

    Como esta….

    Su publicacion es un tanto informativa, no sabia de tantos postulados, teorias y demas sobre los Numeros Primos.
    Lo que no comparto es el afan de manifestar que los numeros primos se posicionan al azar, siendo esto Falso!!
    Tambien no comprendo porque utilizan complicados algoritmos e incluyen la raiz cuadrada en sus funciones.
    La figura es la siguiente estimado :
    ○ Los numeros primos se originan a partir de los “Primos Origen” los cuales son especiales y representan a todo el universo de numeros primos, donde todo primo pertenece a uno de los primos origen, es asi de claro.
    ○ Los primos origen, tienen en su esencia todas las caracteristicas de todos los primos que se originaran de cada uno; por lo que solo basta conocer sus propiedades para comprender al resto de primos de su prole.
    ○ La organizacion y/o distribucion no es al azar, porque existen “secuencias” definidas, tanto generales como particulares, con lo que se organiza la distribucion de todos los numeros primos.
    Si me pregunta como es posible esto, pues la base esta en la “secuencia de multiplos directos” comun a todos los primos, con lo que se determina de forma precisa, el posicionamiento de todos los multiplos y por ende la presencia de los nuevos primos.

    Para terminar le dire que esta secuencia no es proporcional, equidistante ni exponencialmente relativa. Pero determina, de forma exacta todos los multiplos de un primo, donde al pepurarlos solo quedan los nuevos mueros primos.

    • Ireneses Says:

      Gracias por tu comentario, Victor Luis.
      Hace tiempo que redacté ésta entrada y escribo ésta respuesta de memoria.

      Lo que se afirma no es que la secuencia de primos sea aleatoria, sino que dado que no se ha encontrado un procedimiento determinista que pueda generarla (y creo que incluso se ha demostrado que hay determinados procedimientos deterministas que no pueden generarla, como por ejemplo un determinado tipo de polinomios: http://en.wikipedia.org/wiki/Formula_for_primes) se considera que se pueden conocer mejor sus propiedades simulándola por procedimientos aleatorios, como el que yo proponía en esta entrada, que no se si es adecuado o no, y otros.

      Primera vez que oígo hablar sobre primos originales. Si a lo que se refiere este concepto es una base finita de números primos que permita generar a todos los demás, personalmente dudo mucho que esto sea posible. Igual podrías proporcionar alguna fuente sobre este concepto o tema para los lectores interesados en estos asuntos.

      saludos cordiales

    • Ireneses Says:

      Hola Victor,

      Una novedad que seguramente ya conoces: confirmado el Mersenne 44.

      http://www.mersenne.org/

      saludos

  2. Victor Luis Says:

    Holas de nuevo…

    En esta pagina estoy publicando mas extensamente el proceso de mi investigacion, por asi decirlo, referente a los que denomino Primos Origen:

    http://primos-origen.es.tl/PRIMOS-ORIGEN.htm

    Revise la pagina que indicas y te expongo:
    ◘ Todos indican que no existe la ecuacion o formula que genere directamente los numeros primos, como mencionan P (n) y ahi se comienzan a perder, diciendo que P(1+kp)= P(1) osea quieren obtenerlos como si fueran multiplos 2,4,6,8,10,… y al ver que no es asi, analizan cuantos aparecen en ciertos rangos, aplican formas, progresiones, cribas y algoritmos super-complicados (almenos para mi) lo que unicamente hace es hacerlo ver mas complicado, donde muchos afirman indirectamente que se presentan al azar.

    ◘ No estoy de acuerdo, porque descubri que existen unos cuantos numeros primos, con caracteristicas especiales, de los que nacen todos los demas numeros primos, por lo que los denomine como “Primos Origen”, talvez el termino no sea correcto; pero cada uno da origen a primos de su especie, por asi decirlo, ya que este primo origen, posee todas las caracteristicas de los numeros primos que originará.
    ○ Entonces, crear una ecuacion o formula para generar todos los numeros primos, es imposible; pero si generar los numeros primos de un primo origen interacctuando con los otros primos origen.

    ◘ En la publicacion menciono la “secuencia de multiplos directos” el cual permite comprender, el porque aparecerian sin orden logico (aparentemente) ya que esta secuencia determina exactamente los multiplos de cada primo, lo cual se repite constantemente siguiendo el orden de la secuencia; lo cual no es “azar”, sino todo lo contrario, una organizacion predeterminada presente en todos, absolutamente todos los numeros primos.

    ◘ Si bien sabemos que todo numero sea primo o compuesto, expresa sus multiplos segun la proporcion de su tamaño el cual digamos seria el factor multiplo:
    ( 37_74_111_148_185… )
    ( 41_82_123_164_205… )
    entonces un numero primo, para ser tal, no debe estar presente entre los multiplos de ningun numero natural que le precede; pero a partir de donde se inicia expresa sus multiplos, por lo que supondriamos que este no tiene relacion con ningun numero natural antes que el excepto el 1.
    ○ Esto no es asi, pues cada numero primo esta relacionado directamente del primo origen del cual se origino, donde desde este primo origen, podemos determinar los multiplos que tendra, utilizando la secuencia de multiplos directos aplicado a su primo origen.
    Por esto me atrevi a denominarlos “primos multiplos” ya que su formacion y expresion de multiplos, es heredado del primo origen del cual se origino.

    ►Entonces, la creacion o busqueda de una ecuacion o formula que genere directamente numeros primos, debe estar dirigida a los primos origen y no asi a los primos multiplos originados; donde una formula seria aplicable solo para un determinado primo origen, capaz de generar directamente sus numeros primos.

    ☼No soy matematico; pero con simples calculos, pude encontrar los primos origen, las secuencias y comprender la distribucion de estos; lo que para muchos es algo incomprendible… y creo que lo sera, mientras no se enfoquen el tema desde otro punto de vista.

    Gracias por permitirme ocupar un poco de su espacio web.

    Atte. viluarte22 @ hotmail.com

    • Ireneses Says:

      Hola Víctor,

      Puedes utilizar todo el espacio que quieras y recuerda que lo importante no es ser o no ser, sino estar o no estar bien informado.

      Por mi parte lamento decirte que ahora mismo no dispongo de tiempo para estos temas. Si quieres que alguien lea tu página dedicándole más tiempo que el que he podido dedicarle yo sugiero la completes y pulas. En mi modesta opinión le falta claridad (no hay definiciones claras, no se explica el método, que parece una variante del de criba, claramente etc…).

      Y ojo, lo que afirman en la página que te he enlazado es que determinados tipos de fórmulas polinómicas no permiten obtener solo primos. Te sugiero leas estos otros dos enlaces que están más claros que el de wikipedia: http://mathworld.wolfram.com/PrimeFormulas.html y http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html.

      suerte !

      p.s 1. Por cierto he recordado que el primer paso de tu método de generación de primos es equivalente a uno ya muy conocido, la famosa secuencia 6n +/- 1 (tal y como ya comentan en este enclace: http://primes.utm.edu/notes/faq/six.html). Te sugiero que, además de dar definiciones claras sobre los conceptos que propones, indiques en tu web o aquí si prefieres como funcionan los pasos siguientes de tu método para los rangos [1000-1100] y [1000000-100100] o cualquier otro par o tupla de rangos, lo suficientemente distantes, que consideres ilustrativos para tu método.

      P.s. 2. Para que los lectores sepan de que hablamos, hay varios problemas relacionados con la generación de primos.

      — Un primer problema relacionado con la generación de primos es generar un primo con al menos k dígitos. Para este problema, ver por ejemplo: http://michaelnielsen.org/polymath1/index.php?title=Finding_primes. Según esta página web indicada hay varios métodos, por ejemplo el de Meissel-Lehmer u Odlyzko. Y en este artículo los resultados de dicha investigación: http://arxiv.org/pdf/1009.3956v4.pdf. Para resolver este problema se utiliza llamada test de primalidad (dado un número cualquiera, determinar si es primo o es compuesto). Como es sabido hace unos años se descubrió un algoritmo polinómico determinista para esta subrutina, AKS. Antes de AKS ya existía un algoritmo probabilista eficiente como test de primalida, el Rabin-Miller. Aquí un artículo (http://joye.site88.net/papers/JPV00gen.pdf) de 2000 relacionado con todos estos temas. De cualquier manera, si no me equivoco, los algoritmos que se utilizan tanto para resolver el problema original como los test de primalidad no son óptimos (y puedo equivocarme dado que desconozco todo sobre esto). Por ello puede haber recorrido para la mejora.

      –Un segundo problema dentro de la generación de primos, es generar una lista ordenada de todos los primos hasta un número dado. Relacionada y previa a esta pregunta es la siguiente ¿ cuantos números primos hay hasta un número dado o en un rango dado ?. Esto mismo se lo preguntaron ya diversos matemáticos (Legendre, Gauss y otros) y existe al respecto un teorema famoso del XIX, de Hadamard y La Vallée Poussin: http://en.wikipedia.org/wiki/Prime_number_theorem. para esto se utilizan las cribas: http://umumble.com/blogs/algorithm/334/. Volviendo a la pregunta original, el método más utilizado para esto es por lo visto la criba de Atkin: http://en.wikipedia.org/wiki/Sieve_of_Atkin, exracto: This sieve computes primes up to N using O(N/log log N) operations with only N^(1/2 + o(1)) bits of memory. That is a little better than the sieve of Eratosthenes which uses O(N) operations and O(N1/2(log log N)/log N) bits of memory),

      –Un tercer problema sería generar todos los primos en un rango dado (por ejemplo entre [1000-100.000]. ¿ Mejor algoritmo? Me imagino que el mismo señalado anteriormente. Para esto hay dos alternativas, precisamente los dos tipos de métodos señalados anteriormente, el test de primalidad o la criba. En función del rango será mejor uno u otro método. Según afirman en esta entrada de mathoverflow precisamente sobre este tema, la criba suele ser más rápida: http://mathoverflow.net/questions/33304/mareys-problem-generating-all-prime-numbers-in-n-1-n-2).

      Si no me equivoco la propuesta de Víctor es una respuesta a la tercera versión del problema de generación (generar todos los primos de un rango dado), que supone una variante de los métodos de criba: primero genera una lista de números enteros que contiene un tercio del rango dado y a partir de esta por un método muy directo cuyos detalles desconozco ya que las explicaciones no son claras, genera la lista los primos. Hasta que no la aclare, me reservo la opinión.

      Ps.3 En fin para terminar señalemos que todos estos problemas y soluciones pertenecen a la disciplina llamada Teoría de Números Computacional o Algorítmica (que personalmente no conozco bien). Una muy buena introducción (centrada en los test de primalidad y el problema de factorización, sobre el que no hemos hablado) en este artículo: http://www.math.dartmouth.edu/~carlp/PDF/pcm0049.pdf. Y un libro del mismo autor y que trata sobre las mismas cuestiones y otras, pero con mayor profundidad y detalle en el siguiente enlace: http://thales.doa.fmph.uniba.sk/macaj/skola/teoriapoli/primes.pdf

  3. Victor Luis Says:

    Un verdadero gusto usar tu espacio web y espero no abusar mucho; pero cada vez hay pocas personas como tu con bastante preparacion y de criterio amplio.

    Es verdad la observacion que haces de mi pagina, esta en desarrollo y solo puse parte del informe que hice para monografias.com indicando los procesos que realicé hasta encontrar las ultimas secuencias que relacionan directamente a los primos origen con los primos originados de cada uno de estos.

    ◘ Sobre el primer problema en la generacion de primos con k digitos, creo te refieres a un metodo que busque de forma ilimitada. Es lo que pretendo con mi metodo PRI-BASE, al respecto un amigo me pregunto como hare cuando los digitos sobrepasen de la capacidad de 64 bits, si creaba librerias. Le indique que no, mi limite es de 1 Billon y al llegar reinicio la secuencia, manteniendo el orden que corresponda a los primos origen, donde a los nuevos primos los denomino replicados, pues les falta 1 billon y estos multiplos de billones lo controlo en un archivo, que segun calcule me rendira para buscar hasta 100 millones de digitos.

    ◘ Este tema de PRI-BASE lo ampliare y pondre aparte, no esta claro, porque pense que en monografias.com solo querian saber de los primos origen. Puse el tema de la Serie Progresiva (+2)(+4) porque lo desarrolle en base a mi propio analisis, luego cuando busque informacion, me entere de Eratostenes y su criba, la cual es casi lo mismo, solo que este metodo descarta multiplos no primos segun su posicion en los numeros base generados por la serie progresiva.

    ○ Ya habia leido sobre el algoritmo AKS y el metodo aleatorio de Rabin-Miller, este ultimo lo usan en una pagina Factoris, donde me sirvio para ir comprobando los primos que encontraba; pero las formulas, sinceramente estan en chino para mi.

    ◘ Sobre el 2º problema, disculpa pero no comprendo la finalidad de la pregunta ¿ cuantos números primos hay hasta un número dado o en un rango dado ?
    Creo que esto tambien esta relacionado con el 3º problema buscar en un rango de [1.000 – 100.000]

    ○ Hasta donde vi en mis analisis, si uno quiere estimar la magnitud con que los primos van disminuyendo, no se lo debe hacer con cualquier rango, pues nunca encontraran ese dato. Deberian analizar con los rangos de [3.000 – 300.000] y quieren usar uno y cero este seria [10.000 – 1.000.000]
    ○ En el rango que busca mi metodo de 50.000.000 al inicio encontro un poco mas de 1.850.000 primos y hasta el limite de 1.450.000.000.021 bajo a 1.784.338 los voy anotando para identificar cuando esto llega a cero y analizar si hay un descenso lineal, lo cual dudo y pienso que se relaciona con una de las secuencias que encontre o existe una nueva secuencia.

    ◘ Disculpa, no quiero extenderme mucho; sobre la propuesta mia que indicas relacionada a la tercera version del problema, comprendiste muy bien como es, lo cual ampliare y pondre en mi pagina.
    ○ Agregare que puede ser considerado variante de criba, no se al respecto; pero los numeros base generados, presentan una condensacion, que no creo (segun yo) se pueda mas. En esta nueva organizacion o disposicion, pareciera no haber logica para depurar los multiplos no primos y es ahi, donde analizando en hojas de Excel, encontre la “secuencia de multiplos directos” que aplicado a un calculo se obtienen directamente los multiplos de cualquier primo.

    ► Para que me entiendas, las cribas de Eratostenes y las otras variaciones, son faciles. En la serie progresiva (+2)(+4) ya hay que hacer calculos basicos, como indico en la pagina; pero con el metodo PRI-BASE no se aplica una secuencia estable, equidistante o paralela, la secuencia es desnivelada, si me hago entender; pero se obtienen los posibles multiplos que tendra un primo dentro de los numeros base generados.

    ►Sabiendo estos se determina los (DS) datos secuencia, con lo que sabemos cual es la posicion de los multiplos a depurar, donde como toda secuencia, el numero de datos que tiene es igual al numero de primos origen que existen.
    Osea la distancia entre multiplos, me sirve para crear estos DS, ya que se repiten ciclicamente.

    ◘ Para finalizar y disculpa otra vez por extenderme, encontre la ultima secuencia (SDS) “Secuencia de Datos Secuencia” se ve como redundante, lo es; pero eso significa, ya que con esta secuencia puedo saber y/o calcular los DS de cualquier numero primo, a partir de su correspondiente primo origen.

    ► Con esto, es mi idea, se puede hacer un programa, variacion de PRI-BASE que busque numeros primos de forma ilimitada, utilizando tan solo los primos origen.
    Aclaro que no hice ningun avance sobre esto; pero te lo hare saber, tan pronto tenga resultados.

    Gracias por la informacion, los articulos, las recomendaciones dadas y disculpa si no menciono algunos datos de mi metodo, pues los considero fundamentales y estan en su ultima evaluacion.

    Que te vaya bien amigo…. saludos de Sucre-Bolivia
    Atte. viluarte22 @ hotmail.com

    • Ireneses Says:

      Víctor, mala señal si las fórmulas te suenan a chino…:-).Antes de embarcarse en estas cuestiones conviene leer todo lo ya descubierto y esto implica saber interpretar las fórmulas. Más que nada para no redescubrir la pólvora.

      Además de leer los enlaces (y otros que puedes encontrar en internet), si quieres que alguien lea con detalle tu propuesta, publica en tu página algo completo y con redacción clara:
      –define claramente el problema o los problemas que vas a resolver.
      –define claramente el input, los datos de los que partes.
      –define claramente los conceptos o herramientas que vas a utilizar para resolver el problema: primo origen, sds, ds etc…Tu los tienes muy claros pero los demás no, al menos yo. Recuerda que en ciencia tan importante es tener buenas ideas como saber comunicarlas.
      –si lo que propones es un algoritmo (y por lo que comentas sabes programar), expresalo en pseudocódigo o en lenguaje natural pero paso por paso y de manera clara.
      –Define claramente el output, la solución que da tu algoritmo.
      –si puedes pon un par de ejemplos sobre como funciona el algoritmo. Por ejemplo como generas todos los primos en dos rangos, los que quieras.

      Aquí (http://cgi.csc.liv.ac.uk/~ped/teachadmin/COMP202/annotated_np.html) tienes muchos ejemplos de como definir un input y un problema (en forma de pregunta).

      Aquí (http://sistemj-a.blogspot.com.es/2011/02/8-que-es-pseudocodigo.html) tienes un ejemplo de pseudocódigo en formato gráfico.

      suerte y saludos
      Ps Sobre tus dudas y otros temas:
      –sí, k es un símbolo para un número genérico, es decir para cualquier número, de cualquier tamaño. No importan los detalles
      implementación. Son irrelevantes.
      –la respuesta a la pregunta sobre el número de primos inferior a un número dado es el teorema fundamental de los números primos que debes de conocer (por tus comentarios parece que lo conoces).
      –el método que llamas (+2) (+4) es equivalente a la secuencia 6n+/1. Esto quiere decir que por ambos métodos se genera la misma secuencia de números. Esta secuencia incluye todos los primos pero también falsos positivos, es decir números no primos. Entonces hay que discriminar.

  4. Victor Luis Says:

    Gracias Ignacio por tomarte un tiempo y darme tus sugerencias, que tenlo por seguro, lo ire desarrollando y luego publicarlo como debe ser.

    Creo que tome un poco de confianza y por eso use la expresion de “chino” y si, voy leyendo todo el tiempo y eso que dices de “descubrir la polvora” me recuerda a mi hermano mayor que un dia me dijo eso… y por esa causa, me embarque en este tema, ya que sigo revisando publicaciones para ver si alguien ya usa el mismo metodo y si hay formulas, consulto a amigos, aunque soy casi 100% autodidacta.

    Bueno amigo, antes de depedirme, te dire que me has motivado en hacer algo que creo no me corresponde; pero lo intentare y es lo que te dije, crear un metodo que genere directamente primos pero solo los que pertenezcan a un primo origen… cuando tenga algo o nada te lo comentare.

    Suerte y Adelante….

    • Ireneses Says:

      Perfecto Víctor.

      Sin miedo con las formulas. No son más que una manera sucinta o resumida al máximo de representar procesos o proposiciones según el caso, y casi nadie las entiende a la primera. Está muy bien que tengas alguien que te aclare dudas así ahorras tiempo.

      Pero ojo, si me aceptas un último consejo, no te obsesiones con este problema: si no me equivoco nadie espera que exista una fórmula o método que genere directa (tampoco tengo muy claro a que te refieres con esto) y de manera eficiente (idem) ni la secuencia de primos (todos los primos y sólo los primos) ni siquiera un fórmula (también eficiente) que genere el enésimo primo.

      Unos cuantos enlaces más sobre estos dos temas, muy claros que pueden ser de tu interés:
      http://primes.utm.edu/glossary/xpage/FormulasForPrimes.html
      http://primes.utm.edu/notes/faq/p_n.html
      http://cs.stackexchange.com/questions/10683/what-is-the-time-complexity-of-generating-n-th-prime-number

      Hay varias relajaciones de este problema original:
      –métodos que generen un subconjunto de los primos sin falso positivos.
      –aproximaciones del enésimo primo (según he visto una no muy buena la da el teorema de los números primos, n ln n; ayuda a reducir las operaciones de criba)
      etc…

      Para más detalle debes de contactar con alguien que sea experto en teoría de números computacional o algorítmica que te indique lo que es factible y lo que no en este campo, lo que es interesante y lo que no.

      Bueno, ¡ suerte !

  5. Victor Luis Says:

    Holas Ignacio…

    Gracias por los enlaces, ya los termine de traducir..

    No se si leiste el libro “Los genios no nacen, se hacen” del Dr. Camilo Cruz autor tambien de la obra “La Vaca”. En la introduccion del primer libro que te menciono, se lee este trabalenguas; pero que le hace a uno pensar:

    • El que no sabe y no sabe que no sabe es estupido:Evitalo
    • El que no sabe pero sabe que no sabe es ignorante:Enseñale
    • El que sabe y no sabe que sabe esta dormido.Despiertalo
    • El que sabe y sabe que sabe es sabio.Siguelo

    ◘ Queria comentarte, que esto de los numeros primos, no fue una decision o eleccion logica, a veces tengo presentimientos y se cumplen, a veces, y eso fue algo que me hacia quemar las pestañas en Excel; asi encontre a estos primos origen y lo mismo sucedio cuando encontre la secuencia SDS que relaciona a los primos con sus origenes….
    ○ Bueno… al grano…. una de las tantas ideas que me vinieron a la cabeza, era el poder determinar directamente si un numero de k digitos es multiplo de un primo. La idea que medio desarrolle consistia en evaluar cada 3 digitos.
    Ej 1.234.567.887 (es multiplo de 7)

    * Vamos a ver si es multiplo de 7
    METODO:
    • Separamos por los puntos para tener numeros de 3 digitos, que serian:
    1
    234
    567
    887

    • Recorremos de IZQ→DER donde al numero de 3 digitos Restamos el Saldo anterior, en este caso seria 1
    234-1=233

    • Ahora dividimos entre 7 truncando y sacamos el saldo, es como usar Mod.
    (233/7) = 231 y sobra 2(saldo)

    • Hacemos lo mismo con los demas:
    567-2= 565
    (565/7)= 560 y sobra 5

    887-5= 882
    (882/7)= 882 y sobra 0

    ►La logica es que cuando:
    Saldo final=0 → Es MULTIPLO
    Saldo final0→ No es Multiplo

    ○ La idea era comprobar con primos que terminen en 1, 3, 7 y 9 medio funciono con 11 y 13; pero con el 17 adelante nada… asi lo deje.

    Bueno amigo…. gracias por todo …me voy a leer los temas para que trabaje mi subconsciente…

    • Ireneses Says:

      1. Víctor, en España decimos: yo solo sé de lo que sé y de lo que sé solo sé que no se nada🙂. En tiempos de Sócrates todavía estaba bien visto ser generalista; ahora ya no y esta frase es una adaptación a los nuevos tiempos…

      Olvídate de genios (nadie, salvo quizás algún periodista, sabe que significa esta palabra) y de subconscientes (idem). En esto de la investigación solo hay una cosa que sirve, lo que en España llamamos “codos” y en Alemania creo que “culo”, es decir el estudiar y dominar toda la literatura previa, lo que llaman el estado del arte, y luego, a partir de esto, probar nuevas vías. De esta manera, a veces, muy pocas, suena la flauta. Pero sin dar este paso previo, nunca sonará.

      Cuando domines toda la literatura verás que muchas de las ideas que se te han ocurrido ya han estado sobre la mesa y se han descartado o eran buenas pero ya alguien las tuvo antes que tu y sólo has reinventado la pólvora, como dice tu hermano. Esto puede ser satisfactorio a corto, pero a la larga frustrante y sobre todo estéril. Si te gustan estos temas, ponerte al día es el primer paso, el primer sacrificio que nadie puede hacer por ti (nadie ha dicho que esto sea fácil). Si no estas dispuesto a hacerlo, dedícate a otra cosa…:-).

      2. El nuevo problema que me comentas, en su forma más general, tiene un nombre, FACTORIZACIÓN DE ENTEROS (http://es.wikipedia.org/wiki/Factorizaci%C3%B3n_de_enteros), y también ha sido muy estudiado, casi tanto o más que el de encontrar un patrón en los primos.

      Este problema es en mi opinión más interesante que el de los primos de tu propuesta, pues todavía se desconoce su complejidad computacional. Aunque en general se piensa que no lo hay, ya que se ha buscado intensivamente incluso por grandes matemáticos, y no se haya encontrado, los expertos no se descartan que pueda haber un algoritmo polinómico (no hay ninguna barrera teórica para ello). Por lo tanto posiblemente merezca más la pena dedicarle tiempo que al otro.

      Si quieres poner a prueba tus métodos puedes probar con los números RSA: http://en.wikipedia.org/wiki/RSA_numbers. Por ejemplo con el RSA 220 o 729 (un número de 220 cifras en expresión decimal y 729 en binario. Si encuentras sus factores primos te harás “famoso”, ya que todavía no ha sido factorizado (antes había incluso cuantiosos premios económicos para quien obtuviese factorizaciones de alguno de estos números, pero ya no). Ojo, si le vas a dedicar tiempo, asegurate de que no esté publicada una factorización ya que he visto que uno de tamaño superior (RSA 233 o 768 ya se ha factorizado).

      2260138526203405784941654048610197513508038915719776718321197768109445641817 9666766085931213065825772506315628866769704480700018111497118630021124879281 99487482066070131066586646083327982803560379205391980139946496955261

      Puedes calcular por ti mismo cuantos segundos llevaría encontrar los factores primos (creo que en los RSA siempre son dos factores y tienen la mitad de dígitos del original) de este número por el método más simple de fuerza bruta (creo que O(Raiz cuadrada de n), con n siendo el número a factorizar. Esta es una complejidad exponencial con respecto al número de dígitos de la expresión binaria; para más detalles sobre que se debe de considerar el tamaño del problema y que tipo de operaciones cuentan a efectos del análisi de complejidad puedes ver este artículo: http://www.math.ru.nl/~bosma/onderwijs/voorjaar10/complandnt.pdf ).

      Si con el método sobre el que has enviado un comentario o cualquier otro que se te ocurra consigues factorizar este número RSA entonces contáctame de nuevo, si quieres, enviándome los factores antes y estaré encantado de mirar tu método detalle. Pero te sugiero que antes de enviárselo a nadie, si finalmente obtienes alguna mejora, lo veas con algún especialista de confianza en caso de que quieras sacarle algún partido económico (legal claro).

      En este problema las cotas superior actuales son:

      –según wikipedia la mejor cota heurística es Subexponencial: En particular, el mejor tiempo asíntotico de ejecución es el del algoritmo de criba general del cuerpo de números (CGCN), que para un número n de b bits es:
      O(exp(64b^1/3 log b^2/3)
      .

      –y la mejor cota determinista con complejidad probada es O(n^1/4) o O(n^1/6). Puedes ver: http://web.maths.unsw.edu.au/~davidharvey/talks/factoring.pdf y
      este muy reciente artículo de agosto de 2013 dónde al parecer mejorar la cota O(n^1/4): http://arxiv.org/abs/1308.2891 (desconozco si otros expertos aceptan o no la validez de este último resultado; yo no lo he leído).

      Esta es la cota a superar sea con una cota mejor subexponencial o con una, obviamente mucho mejor, polinómica.

      3. Con respecto al tema de los primos, si he interpretado bien tus palabras, el problema que pretendes resolver es el siguiente:

      INPUT: un rango o intervalo cualquiera de números enteros. Por ejemplo [0-10000]. Podría ser cualquier otro rango que no empezase por 1.

      PROBLEMA: generar una lista con todos los números primos y solo los primos en este rango.

      Realmente no conozco mucho de estos problemas de teoría de números computacional, y tengo todas mis escasas habilidades matemáticas completamente oxidadas (a la larga estamos igual pues la falta de práctica es igual a empezar de nuevo…) y por lo tanto debes tomar lo que te diga a continuación con pinzas pues puede contener errores.

      Como sabes ya existen múltiples métodos para resolver este problema (incluidas las diversas fórmulas) y lo interesante aquí es encontrar un método que sea más eficiente que todos los demás publicados, desde el punto de vista teórico, de su complejidad computacional: es decir que tarde menos tiempo y ocupe menos memoria o espacio que los actuales.

      Diría que en este problema, el método óptimo sería generar la lista de primos, uno tras otro directamente. Gracias al teorema de los números primos conocemos aproximadamente la complejidad computacional de este método óptimo (y entiendo que se puede generalizar fácilmente a cualquier rango que no empiece por 0): O(n /ln n) (dejo el Big O pero es más bien Theta() o quizás =) en operaciones (o tiempo) y O(n /ln n) en espacio o memoria (n = tamaño del rango y ln logaritmo natural; idem sobre lo relativo al Big O). Esto sería la cota inferior de este problema, el objetivo a aproximar.

      De momento, que yo sepa no existe un algoritmo que llegue a este óptimo (ni posiblemente exista nunca). pero si existen métodos menos eficientes:

      –Tenemos por ejemplo el método de fuerza bruta más obvio que sería generar todos los números del rango y aplicar un test de primalidad a cada uno de ellos, uno a uno, hasta identificar todos los primos del rango dado (puedes calcular por ti mismo la complejidad computacional o eficiencia de este método; entiendo que habría que añadir otro parámetro que exprese el tamaño de cada número).

      –No sé si las fórmulas existentes de generación de primos son más o menos eficientes que este método de fuerza bruta: por lo que he leído son meras curiosidades teóricas sin interés ninguno desde el punto de vista práctico.

      –Los métodos de criba si son bastante mejores que el método de fuerza bruta. El mejor por lo visto, la cota superior actual, es el de Atkin y esta debería de ser tu referencia. Tiene complejidad temporal O(n/log log n), que no es el óptimo pero no está nada mal (ojo, tampoco tengo claro que comparar esta cifra con la del óptimo tenga sentido pues no conozco en detalle el algoritmo de Atkin ni su análisis). No sé aquí si log se refiere a logaritmo natural.

      Si cuando termines tus comprobaciones tu propuesta funciona bien siempre (esto tienes que demostrarlo) y mejora en complejidad temporal y espacial el método de Atkin (es decir si la complejidad de tu método está, entonces es posible que tu resultado sea interesante. Pero por lo poco que he comprendido, primero generas una lista de unos 1/3 n enteros (n = tamaño del rango). Diría que solo por esto ya vas por detrás de Atkin. El resto de los pasos de tu método los desconozco (ya te he comentado que no veo definiciones claras, ni explicación del algoritmo).

      saludos y suerte

  6. Victor Luis Says:

    Hola Amigo Ignacio…

    Inicialmente me disculpo(1º) por no haber avanzado nada

    en la pagina de primos-origen, que s un espacio web

    gratuito; pues me entretuve leyendo la interesante

    informacion de las publicaciones que me sugeriste.
    Al respecto puedo comentar lo siguiente:

    * Es asombroso como ver como el ser humano tiene una

    inmensa capacidad para analizar el entorno que le rodea

    y sobre los matematicos, el ingenio que presentan para

    desarrollar funciones de calculo que simplifican largos

    procesos, con lo se puede comprender y/o controlar

    estos, lo cual ha llevado al avance de nuestra

    civilizacion.
    * Al mismo tiempo, en mi humilde opinion, respecto al

    tema de los Numeros Primos, pienso ha habido una

    relativa perdida de tiempo, ya que el tema se centra

    sobre las teorias de unos cuantos, donde algunos

    comprueban la eficacia o no de esto (proceso logico) y

    otros proponen arreglos, mejoras o desarrollan una

    teoria en base a este (proceso logico). Pienso que se

    deberia analizar como fue abordado el tema y rescatar

    lo esencial, no para dar una respuesta, sino para

    ampliar la comprension del problema.

    ANTECEDENTES PRELIMINARES PARA EL ANALISIS.
    El analisis o investigacion que te dije realizare, no

    sera en desarrollar un algoritmo de primalidad como los

    que hay, ya que son complejos y estan fuera de mi

    preparacion.
    En una de las publicaciones, hacen referencia al tamiz

    o metodo de Eratostenes y de Atkin, como los mas

    idoneos para buscar los n primos.
    * El METODO de ERATOSTENES se basa en la eliminacion o

    depuracion de multiplos de primos para identificar a

    los numeros primos; pero iniciar la discriminacion

    desde los multiplos de 2 y 3, no me parece, ya que son

    los que mas multiplos tienen. La generacion de numeros

    base con la serie progresiva (+2)(+4) discrimina a

    estos multiplos; pero el 5 tambien tiene muchisimos, lo

    que dificulta el proceso y consume recursos.
    La optimizacion del tamiz de Eratostenes, me parece

    adecuada, pues una parte en algo se asemeja a la

    primera fase de mi metodo, no por esto seria igual o

    esta basado a partir de esto. Pero al emplearse la

    misma metodologia de depuracion, el rendimiento y el

    tiempo del proceso, muestran una mejora no tan

    significante.
    * El METODO de ATKIN como indica en Wikipedia:
    “Es una versión optimizada de la criba de Eratóstenes,

    que realiza algo de trabajo preliminar y no tacha los

    múltiplos de los números primos, sino concretamente los

    múltiplos de los cuadrados de los primos.”
    Atkin en base a la optimizacion de Eratostenes,

    selecciona el proceso segun el resto obtenido de modulo

    60, que aunque es mas eficiente en tiempo y recursos,

    trabaja con los mismos numeros base del tamiz

    optimizado de Eratostenes.
    En el tema que publique Serie progresiva (+2)(+4)

    indico la forma de determinar la posicion de los

    multiplos de un numero primo, en los numeros base

    generados con esta serie.
    Mi Observacion es que Eratostenes y Atkin, realizan la

    depuracion sobre numeros base, donde el valor de estos

    indica su posicion; mientras que con la serie

    progresiva, la depuracion se realiza en base a la

    posicion de los multiplos presentes en los numeros

    base, lo cual es logico por el comportamiento de todos

    los multiplos.

    Describo todo esto para indicarte que hice mi “tarea”

    revisando la informacion necesaria y/o relacionada para

    iniciar el analisis investigativo, ya que me ubicaria

    en la implementacion de un metodo para la busqueda de n

    numeros primos y durante el desarrollo crear un

    procedimiento que genere todos los numeros primos

    secuencialmente, aplicando metodos individuales para

    cada primo origen.
    Como indique, respetando a los matematicos, mi criterio

    no estara basado en el enfoque de ellos, pues no se

    relacionan del modo como veo el problema, con lo cual

    no quiero decir que estuvieran equivocados, sino que es

    un enfoque mas sobre la investigacion de los numeros

    primos.

    * BASE de ANALISIS e HIPOTESIS.
    Hasta el momento el metodo que uso (PRI-BASE) tiene un

    buen rendimiento, a pesar haber cometido un error lo

    cual me hizo perder casi un mes, donde tuve que iniciar

    la busqueda de cero; pero gracias a eso optimice en

    gran medida el metodo y descubri la secuencia SDS que

    relaciona directamente a los primos origen y sus primos

    originados.

    Al basarme en la depuracion de multiplos no primos por

    su posicion con los DS, para continuar la busqueda por

    rangos, se debe mantener el orden secuencia de los

    numeros base generados a partir de los primos origen,

    lo que no me permite iniciar una busqueda desde un

    rango determinado adelante.
    Para esto pienso buscar un “limite de coincidencia de

    multiplos” que supongo debe haberlo. Lo que quiero

    decir es que cada primo expresa multiplos segun su

    tamaño, donde para ser numero primo, este no debe

    corresponder o estar ubicado en los multiplos de los

    primos que le anteceden; pero como cada primo se

    origina de uno de los primos origen y tiene una

    relacion directa con este, debe existir un punto donde

    compartan el mismo multiplo y este seria el limite de

    coincidencia.
    Por ejemplo si vemos los multiplos de: 2, 3 y 5
    [2]= (4_6_8_10_12_14_16_18_20_22_24_26_28_30_..)
    [3]= (6_9_12_15_18_21_24_27_30_..)
    [5]= (10_15_20_25_30_..)
    Observamos que el limite de coincidencia se da en el

    multiplo 30, donde los siguientes multiplos a

    expresarse serian como si fuera desde un inicio. Ahora

    si agregamos el 7 el limite seria 210, donde vemos que

    este se amplio mucho mas.
    El objetivo es determinar la proporcion de estos

    limites para cada primo origen y mejor si existe uno

    para todos ellos, de modo que se pueda determinar el

    rango de inicio a partir de ese limite, para buscar

    nuevos numeros primos.
    Logrando esto, se podria buscar numeros primos desde un

    rango con cualquier cantidad de digitos, donde para la

    depuracion de multiplos, los DS se obtienen de los

    primos origen aplicando la secuencia SDS.
    Al mismo tiempo, como otro objetivo, sera el de

    determinar una secuencia, factor o logica, que permita

    discriminar los no primos de los numeros base generados

    a partir de cada primo origen, lo cual seria como el

    metodo o formula, para generar directamente numeros

    primos.

    Disculpa por extenderme otra vez; pero explico esto

    para recibir tus criterios, recomendacion y/o

    sugerencias, puesto que tienes una bastante preparacion

    y amplio conocimiento sobre el tema.

    Lo que me indicas sobre la cuota del proceso, voy a revisarlo y tambien ampliare mi conocimiento sobre el tamiz de Atkin en otras publicaciones.
    Tambien lei sobre pseudocodigos y lo estoy preparando para mostrartelo y veas los pasos del proceso que no es tan complicado. He sido un poco reservado al respecto, pues como dijiste, debo primero investigar si ya alguien invento la polvora que uso.
    Gracias por tu tiempo y el espacio que me brindas.

    • Ireneses Says:

      Victor, si conoces bien el estado del arte y has encontrado una nueva manera de atacar este problema, cosa que es perfectamente posible, me parece muy bien.

      Pero sigues sin entender que (+2)(+4) es equivalente a 6n+/-1 (si he entendido bien esta parte de tu método) y si tienes que generar esta secuencia antes de realizar tu criba, esto determina ya la complejidad de tu método que si no me equivoco sería ya menos eficiente que el de Atkin. Actualización: aquí dicen que la criba de Atkin empieza también con la lista de los n números con los que se realiza la criba (http://programmingpraxis.com/2010/02/12/sieve-of-atkin/: Atkin’s sieve begins with a boolean array (bits are fine) of length n equal to the number of items to be sieved; each element of the array is initially false.).Igual en el análisis de complejidad de los algoritmos de criba esta lista con los n números del intervalo o rango se acepta como dato dado con el Input. Todo esto me deja confuso pues pensaba que Atkin evitaba este paso. Igual hago una entrada sobre Teoría de números computacional o algorítmica más adelante intentando aclarar todo esto. He visto otro libro sobre este asunto, con una introducción histórica breve pero muy interesante: http://books.google.es/books?id=iJx1lP9ZcIkC&printsec=frontcover&dq=algorithmic+number+theory+bach+pdf&hl=es&sa=X&ei=4S6rUp_OKLGp0AXPnoHwAw&ved=0CDMQ6AEwAA#v=onepage&q&f=false ; y sobre cribas un interesante artículo: http://www.ams.org/notices/199612/pomerance.pdf. Fin actualización.

      Y sigues hablando de conceptos que no entiendo pues no los has definido. Hasta que no vea una descripción clara del problema que atacas, definiciones de los conceptos / herramientas que utilizas, de tu algoritmo, voy a dejar de contestar. Puedes seguir utilizando este espacio si quieres: aunque no entienda lo que dices, no consideraré que tus comentarios son spam.

      saludos

      P.s. Por cierto Victor, aquí (http://en.wikipedia.org/wiki/Electronic_Frontier_Foundation#Awards) dicen que hay premios en metálico por generar primos de un cierto tamaño. No se si siguen vigentes…

  7. Victor Luis Says:

    Holas Ignacio…

    Disculpa amigo, lo que dije fue la idea que pienso analizar/investigar y estoy aprendiendo a expresarme en este campo, por eso, ahora que he leido las publicaciones que me sugeriste y otras que busque, me doy cuenta de ello.
    No es preciso que diga todo; pero si dar a conocer y entender, el fundamento y los procesos del metodo.
    Ya estoy organizando los objetivos y elementos necesarios para mi analisis y tambien he considerado incluir el desarrollo de un Test de Primalidad… luego te lo presentare con el formato y redaccion adecuado, no pretendo agotar tu paciencia amigo.

    Para finalizar, solo quiero aclararte algo, NO me baso ni me basare en la serie progresiva(+2)(+4), lo mencione para indicar que Atkin usa el modo-60, osea divide entre 60 y saca el resto; segun este resto aplica una formula diferente para marcar o depurar no primos, en los numeros base generados con el metodo optimizado de Eratostenes. Indicaba que con la serie progresiva solo se usa una formula para determinar las posiciones de los multiplos, lo que casi igualaria al metodo de Atkin.

    No te preocupes amigo, confia en mi… cuando te muestre el pseudocodigo y la explicacion de mi metodo, veras que es una nueva metodologia para buscar n primos.

    Feliz fin de semana…

    • Ireneses Says:

      Perfecto Víctor. A por ello entonces. Y recuerda que lo importante no es solo que la metodología sea nueva sino que sea más eficiente que la más eficiente del estado del arte o al menos abra la puerta a algún desarrollo de este tipo. De no ser así, tu resultado quedará para la galería de resultados curiosos pero sin ninguna utilidad.

      Hoy más que nunca hay que centrarse en la eficiencia de los métodos. Yo personalmente estoy seguro que en el futuro despreciarán los algoritmos de tipo Hummer (http://es.wikipedia.org/wiki/Hummer), es decir aquellos que utilizan muchos más recursos (tiempo, espacio u otros) de los necesarios para resolver un determinado problema.

      Esto mismo, llevado al caso que nos ocupa, la generación de primos, lo resume muy bien Pritchard, uno de los autores que ha hecho contribuciones importantes (en terminos de eficacia y eficiencia) en el siguiente párrafo:

      “The problem of enumerating the prime numbers is one of the most venerable of algorithmic problems. It received a deceptively simple and ecient solution from Eratosthenes of Alexandria in the 3rd century B.C. His insight was to recast the problem as that of removing the non-primes up to a xed limit N. Eratosthenes’ sieve requires (N log log N) additions of numbers of size O(N).

      To paraphrase a remark of C.A.R. Hoare about Algol 60, Eratosthenes’ sieve was an improvement on most of its successors.

      (Referencia: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=D6D552ED8CEE12C11034BFB8733DE051?doi=10.1.1.52.835&rep=rep1&type=pdf)

      Debes Víctor evitar caer en esta trampa. Por mi parte, yo ya tengo claro que el input de este problema es el rango o intervalo completo (es decir los n números hasta n o los n-m números entre n y m con m<n) y por lo tanto el análisis de complejidad de estos algoritmos hay que hacerlo partiendo de esto. Si no el algoritmo de Atkin sería de complejidad temporal O(n). Por lo tanto tu reto es rebajar las 0n/log log n) operaciones de Atkin.

      Actualización mismo día. De cualquier manera aquí tienes el artículo de Atkin y Bernstein dónde describen con todo detalle su resultado, con algoritmos en pseudcódigo y análisis de complejidad: http://www.ams.org/journals/mcom/2004-73-246/S0025-5718-03-01501-1/S0025-5718-03-01501-1.pdf. Tras una lectura en diagonal, de nuevo me surge la duda sobre cuales son los datos de los que parten. Deberías intentar asegurarte cuan lejos está este algoritmo del óptimo.

      Y en este libro (http://thales.doa.fmph.uniba.sk/macaj/skola/teoriapoli/primes.pdf), que creo ya enlacé (lo he vuelto a encontrar gracias a esta entrada en stackoverflow que también deberías de mirar: http://math.stackexchange.com/questions/183183/quadratic-sieve-algorithm), una explicación muy clara sobre el análisis de complejidad de las diferentes cribas.

      –Claramente la de Eratosthenes (página 121 si necesita la lista inicial hasta n (a efectos de implementación es suficiente valores booleanos, que se quedarán como 1 si el número es primo o como 0 si no lo es) y su complejidad temporal es el sumatorio hsta n de n/p, dónde p recorre n (ya ves Víctor que cuando uno conoce el lenguaje de las fórmulas estas son mucho más sencillas de interpretar que la lectura de descripciones de estas, como esta que hago yo tan mal). Hablamos de operaciones aritméticas, sumas más concretamente. Esto es casi obvio. Lo que es menos obvio es que esta suma es matemáticamente (me imagino que asíntoticamente) igual a n log log n + O(n), y por lo tanto su complejidad temporal es O (n log log n). Como esta función crece muy lentamente señalan que el problema aquí es de memoria más que de tiempo.

      –más adelante (pág. 126) describen y analizan otra criba, un refinamiento de la anterior por Mairson y Pritchard de complejidad temporal O(n/log log n) que es la misma que la de Atkin. Sugiero leas esta parte con detalle, ya que la explicación es más clara que la del artículo de Atkin y Berstein (yo no me he leído ni uno ni otro de momento). Mairson redujo la complejidad temporal a la ya indicada pero tenía que utilizar la multiplicación lo cual se hacía a costa de incrementar la complejidad espacial (de O(n) a O(n log n / log log n)). Pritchard eliminó la necesidad de la multiplicación y redujo los requerimientos de memoria a =(n / log log n) bits. Para más detalles sobre todo esto debes de ver este artículo: ftp://ftp.cs.wisc.edu/pub/techreports/1990/TR909.pdf anterior al resultado de Atkin-Bernstein. Este otro artículo sobre lo mismo pero más reciente y en catalán aparentemente contradice lo que afirma el anterior sobre Pritchard: http://www.aula-ee.com/escola/sites/aula-ee.com.escola/files/content/arxius/Nombres%20Primers.pdf.

      “La idea és de A.O.L Atkin, professor ara emeritus de la universitat d’Illinois a Chicago, i D.J Bernstein, un jove programador i matemàtic.

      El seu article publicat a Mathematics of computation el 1999 porta com a títol, Prime sieves using irreducible quadratic forms. Abans d’aquest, Pritchard i Mairson ja s’havien adonat que es podia realitzar un garbell amb una complexitat de O(N/log log N) però utilitzant O(N^(1+o(1))) bits de memòria. Aquesta és una millora si es té en compte la complexitat dels garbells no combinatoris anteriors requerien O(N) operacions i aproximadament O(N^1/2 (log log N/log N)) bits de memòria”.

      Atkin i Bernstein proposen un nou algorisme més eficient amb la mateixa complexitat O(N/log log N) però que tant sols necessita O(N^(1/2+o(1))) bits de memòria basat en la transformació d’un problema analític en un de geomètric.

      Sugiero leas los dos y saques tus conclusiones.

      –posteriormente comentan lo siguiente The ordinary sieve of Eratosthenes, as discussed above, may be segmented, so that but for the final list of primes collected, the space required
      along the way is O(n^1/2) es decir la raíz cuadrada de n. And this can be accomplished without sacrificing on the time bound of O(n/ ln ln n) bit operations. Can one prepare a table of
      primes up to n in o(n) bit operations, and use only O(n^1/2) space along the way? Algorithm 3.2.2 meets the time bound goal, but not the space bound
      . Por este algoritmo 3.2.2 se refieren al del punto anterior (The paper [Atkin and Bernstein 2004] nearly solves this problem).

      En fin no he conseguido averiguar si se considera que Atkin es sustancialmente mejorable. Lo único que he encontrado es la siguiente frase de un abstract de un artículo de 2013:

      This paper presents a new distributed approach for generating
      all prime numbers in a given interval of integers. From Eratosthenes, who elaborated the first prime sieve (more than 2000 years ago), to the current generation of parallel computers, which have permitted to reach larger bounds on the interval or to obtain previous results in a shorter time, prime numbers generation still represents an attractive domain of research and plays a central role in cryptography. Referencia: A distributed wheel sieve algorithm using Scheduling by multiple edge reversals. Como ves aquí presentan un algoritmo distribuido y por lo tanto no se si la frase se refiere a que es un problema activamente investigado también para algoritmos secuenciales. Fin actualización.

      saludos

      P.s. Por cierto Víctor, quiero que quede claro de nuevo que yo no soy experto en estos temas de teoría de números algorítmica, que me he limitado a contestar a tus comentarios, a proporcionarte algunas fuentes de información que creo que podían ser de tu interés si decides trabajar en esto y a informarte como deberías de comunicar tus ideas si quieres que alguien (que no necesariamente tengo que ser yo) las lea. Por lo tanto sólo tu eres responsable de dedicarle tus recursos a este tema (sea tiempo o de otro tipo) y yo no tengo ninguna responsabilidad ni obligaciones sobre ello.

  8. Victor Luis Says:

    Holas Ignacio…

    Desde ya muchisimas GRACIAS !!! Tu me has orientado a que area, si se puede decir, corresponde mi analisis y/o investigacion.

    Realice una breve explicacion del proceso de mi metodo, aunque no uso terminos adecuados.

    PSEUDOCODIGO del METODO PRI-BASE
    ——————————————————–

    ESTRUCTURA en MODULO MP1
    Type DatBase
    ugp(10) As Double
    fm As Integer
    np As Integer
    End Type

    Public dbp As DatBase

    ———————————————————–
    DECLARACION GENERAL en FORMULARIO
    Dim vp() As Double, vds(10) As Double

    [ PROCEDIMIENTO ]
    ———————————————————–
    Private Sub BBuscaPrimos_Click()
    Dim npo, fmg, cs As Integer
    Dim pp, pfm, upp, nran As Double, np, npp As Long

    MP1.LeeDBP
    npo = dbp.np ‘numero de primos origen existentes
    fmg = dbp.fm ‘factor multiplo de primos origen
    nran = 50000000 ‘Rango de Busqueda

    ‘** CARGA LISTA de NUMEROS BASE en VECTOR VP **
    Erase vp
    nv1 = Round((nran / fmg), 0)
    np = nv1 * npo
    ReDim vp(np)

    For i = 1 To npo
    np1 = dbp.ugp(i)
    vp(i) = np1
    For h = 1 To nv1 – 1
    np1 = np1 + fmg
    vp(h * npo + i) = np1
    Next h
    Next i

    ‘** DEPURA MULTIPLOS NO PRIMOS en VECTOR VP **
    upp = vp(np)
    For g = 1 To np
    Select Case vp(g)
    Case Is > 0
    pp = vp(g) ‘Es Numero Primo
    np2 = pp ^ 2
    If np2 > upp Then Exit For

    CalDS
    ‘Procedimiento que devuelve en vector (VDS) los datos de
    ‘secuencia de posicion de los multiplos del primo PP

    pfm = vds(0) ‘posicion del 1º multiplo a depurar
    cs = 0 ‘control para los datos secuencia que se repite NPO

    DepuraMultis
    ‘Procedimiento que depura los multiplos no primos marcado
    ‘en vp(pfm)=0 calculando la siguiente posicion con
    ‘cs= cs + 1: pfm= pfm + vds(cs): vp(pfm)= 0
    ‘* Donde si cs>=npo –> cs= 0 (Reinicia)
    ‘* Donde si pfm>np –> termina el procedimiento

    End Select

    Next g

    ‘** EXTRAE NUMEROS PRIMOS ENCONTRADOS en el RANGO **
    npp = 0
    For i = 1 To np
    Select Case vp(i)
    Case Is > 0
    npp = npp + 1
    ‘MsgBox “Primo: ” & Str(vp(i))
    End Select
    Next i

    MsgBox “Se encontraron” & Str(npp) & ” Numeros Primos.”

    End Sub
    ———————————————————————————

    FUNDAMENTACION del METODO.

    [1º] En base a los primos origen se genera una lista de números base, cargados a un vector, los que comprenden el 26.7% del rango especificado y/o indicado; donde el 73.3% con seguridad no son primos.

    [2º] Se extraen números primos del vector (no depurados) para depurar sus múltiplos iniciando desde PP^2 mediante las subrutinas:
    La subrutina CalDS calcula los datos de secuencia de posición de múltiplos del primo, poniéndolos en el vector VDS.
    La subrutina DepuraMultis que desde la posición del primer múltiplo ira marcando los no primos cambiando su valor en el vector por cero vp(pfm)=0. La posición del siguiente múltiplo se obtiene adicionando el valor del vector vds(cs) al anterior, siguiendo un orden secuencial controlado por la variable cs, que al llegar a npo se reinicia, puesto que la secuencia se repetirá cíclicamente; terminando la depuración, cuando la siguiente posición sobrepase la dimensión del vector.

    [3º] El proceso se repite con el siguiente primo, terminando cuando PP^2 > vp(np) el cuadrado de un primo sea mayor al ultimo numero base del vector; por lo que ya no existen mas múltiplos, de modo que serán números primos todos los que no fueron depurados en el vector, cuyo valor es mayor a cero.

    DETALLES.
    ○ El Rango que uso es de 50.000.000 pero puede ser mas segun el equipo y el lenguaje, yo lo realice en Visual Basic 6.0
    ○ Los primos que se usan para depurar multiplos no primos, no me parecen muchos, ahora que ya busque hasta 2 Billones tan solo se usaron 109.000 primos, claro que es pequeño el limite por ahora.
    ○ Las operaciones en las subrutinas, son de: suma, resta y multiplicacion. No he controlado el gasto de memoria, que como indicas es importante; no tengo bien claro esto; pero voy a estudiarlo y asi darte un resultado para comparar con otros metodos.
    Por otra parte, esto puede reducirse, pues como te mencione, con mi ultima secuencia SDS la subrutina CalDS seria mas simple y directa.
    ○ Como busco en rangos de 50 millones, para continuar la busqueda, uso archivos para guardar el ultimo multiplo depurado con los DS datos secuencia y tambien, los ultimos numeros base generados de los primos origen; de modo que en el siguiente rango, los numeros base se generan continuando el orden secuencial de los primos origen y la depuracion se conpleta con los DS archivados, a los que se incluyen secuencias de nuevos primos.

    ◘ Esto es lo que quiero mejorar, calcular un limite, donde haya un multiplo comun, de modo que la busqueda no necesariamente debe iniciarse de cero, sino a partir de este limite.

    ☼ Voy a leer todas las publicaciones que me recomiendas y otra vez Gracias…. ya estoy terminando de organizar los datos que necesito para empezar mi analisis, tras que tenga algo definido te lo comunicare Amigo…. Felices Fiestas !!!

    • Ireneses Says:

      Hola Víctor,

      Veo que no pierdes el tiempo. A ver si ahora está más claro. Cuando lo lea te comentaré en este mismo comentario.

      Aquí tienes otro artículo muy interesante con la historia estas cuestiones: http://www.computer.org/csdl/proceedings/focs/1994/6580/00/0365702.pdf

      Es de M.ADLEMAN.
      El abstract:

      Though algorithmic number theory is one of man’s
      oldest intellectual pursuits, its current vitality is per-
      haps unrivaled in history. This is due in part to the
      injection of new ideas from computational complexiiy. In this paper, a brief history of the symbiotic relationship between number theory and complexity theory will be presented. In addition, some of the technical aspects underlying ‘modern’ methods of primality testing and factoring will be described . Finally, an extensive lists of open problems in algorithmic number theory will be provided.

      Actualización.

      Víctor, creo que los lectores, si hay alguno, agradecerán tus esfuerzos por aclarar tu propuesta. No obstante no has enviado pseudcódigo sino código en Visual Basic 6 lenguaje que posiblemente muchos no conozcan (yo incluido) y no dispongan de tiempo para invertir en descifrarlo (yo incluido). Por ello aunque creo que tu propuesta está algo más clara (al menos para mi, gracias a los comentarios al final) sigue sin ser reproducible y por lo tanto no evaluable en términos de eficacia y eficiencia.

      Por otra parte he visto tu documento en monografías (http://www.monografias.com/trabajos99/numeros-primos-origen/numeros-primos-origen.shtml) y ya desde las primeras frases se puede ver que no conoces muy bien cuestiones básicas del tema sobre el que escribes: los números primos lo son por DEFINICIÓN, no por un teorema.

      No me gusta desanimar a quien tiene interés en estos temas, sea cual sea su formación; todo lo contrario. Quizás no he dedicado a tu propuesta el tiempo que merecía. Si quieres,
      –leete toda la literatura relevante (la que yo u otros te hayan indicado y otra que puedas encontrar),
      –analiza bien la eficacia de tu método (es decir contrasta tus resultados con datos reales para diferentes rangos sobre los que ya exista información publicada en internet)
      –y sobre todo su eficiencia (es decir encuentra la función que relaciona el número de operaciones que exige tu método con el tamaño de los inputs (rangos)),
      –e intenta aplicar tu método para encontrar algún resultado sorprendente, que nadie haya obtenido antes (primos en un rango que nadie haya explorado por ejemplo).

      Cuando hagas todo esto o bien te habrás dado cuenta que no es ventajoso (es lo que pienso que pasará) o bien tendrás un método contrastado, eficiente y sorprendente, y sólo te quedará mejorar su comunicación (aquí la regla es escribir no dando por supuesto que los demás conocen tu método tan bien como tu; pensando en un público ignorante y poniendo ejemplos de su funcionamiento completos y sencillos).

      Si quieres puedes seguir utilizando el espacio pero no contestaré más.

      saludos y suerte.

      Fin actualización.

  9. Victor Luis Says:

    Gracias Ignacio…

    Finalizando esta etapa, muy provechosa para mi y algo exasperante para ti, al no tener la preparacion básica en este campo, donde practicamente estaba en pañales…. y precipitandome, publique el tema que me aceptaron; pero que viendolo ahora carece de interes cientifico.
    Pero gracias a tu persona, ahora tengo una vision mas clara, de muchos aspectos que desconocia y sobre la marcha me actualice y fui exponiendo mi avance, tomando en cuenta tus sugerencias.

    Bueno, creo que me llevara algo de tiempo en perfeccionar mi algoritmo con una complejidad asintotica que iguale o supere al tamiz de Atkin, tomado como punto de referencia. Lo que me motiva a continuar, es que haciendo un calculo aproximado, no exacto ni definido, solo con la informacion revisada, el coste del algoritmo seria de O ((raiz(n) * 4n) / 4) lo cual se aproxima a la referencia; pero todo dependera de la optimizacion que le de al algoritmo para llegar a O(n).

    Gracias amigo… seguire tus consejos, ya tengo una base para encaminarme, cuando tenga algo bien definido, seras el primero en saberlo.

    • Ireneses Says:

      Perfecto Víctor. Si has calculado bien la función y yo he simplificado bien la complejidad (entiendo que temporal) de tu algoritmo sería O(Raiz[n^3]) o lo que es lo mismo O(n*Sqrt[n]) lo cual está entre lineal y cuadrática, por lo tanto estás muy lejos de Atkin que es sublineal.

      Suerte de cualquier manera !.

      Actualizacion.

      Aquí tienes un análisis de complejidad bastante desglosado de un problema parecido: http://cs.stackexchange.com/questions/9330/time-complexity-of-generating-the-first-n-primes-and-their-product

      Y aquí una explicación didáctica del algoritmo de Atkin-Bernstein.
      http://stackoverflow.com/questions/10580159/sieve-of-atkin-explanation-and-java-example

      –En general hay que distinguir entre contar nº de operaciones (aritméticas) sin tener en cuenta el nº de dígitos de los operandos (lo que se llama el modelo de coste uniforme (uniform cost model) en el que cada operación tiene complejidad constante O(1), cuenta como uno) y nº de operaciones de bit (lo que se llama el modelo logarítmico de coste o logarithmic cost model) dónde si se tiene en cuenta elnúmero de dígitos de los operandos. En la primera páginas de este artículo (sobre todo 10 a 14) explican esta problemática con claridad: (http://www.cse.iitd.ernet.in/~ssen/csl356/root.pdf) y que solución se le da. Tienes que tener en cuenta si el modelo RAM es aplicable en tu caso. Como eres programador entenderás todo esto perfectamente…

      –También me ha llamado la atención que hablan de multitape machine para el algoritmo de Atkin. Ya se sabe que: but any multi-tape machine, no matter how large the k, can be simulated by a single-tape machine using only quadratically more computation time .
      Fuente: http://en.wikipedia.org/wiki/Multitape_Turing_machine. Pero como nos estamos moviendo dentro de la clase de complejidad P, esto se debe de tener en cuenta.

      –recuerda también que en expresiones de tipo Big O, para las cuales sólo es relevante el valor asintotico de las funciones, se eliminan tanto las constantes como los términos de valor crecimiento. Por lo tanto 100000 n = O(n) y n^2 + n = O(n^2) ya que a la larga el término dominante será el cuadrático (tómese el símbolo = en las expresiones anteriores con precaución). Por eso además de por la simplificación algebraica obvia, el incluir los 4, como has hecho no tenía mucho sentido.

      –finalmente comentarte que desde el punto de vista de la complejidad computacional, además de realizar el análisis del coste en tiempo de un método, es relevante intentar clasificarlo en alguna clase de complejidad. Hasta hace poco no se distinguía mucho entre los problemas dentro de P que en la práctica incluye algoritmos desde sublineales hasta cuadráticos (éstos o los cúbicos suelen ser el límite de lo práctico). Sin embargo cuando se trabaja con grandes datos incluso un algoritmo lineal puede ser prohibitivo y desde hace algunos años se está empezando a estudiar con más interés esta temática: tiempo sublineal etc…Desconozco completamente esta temática que como digo es bastane nueva, pero por lo que he visto tiene que ver con la aleatorización y aproximación. Un enlace de interés puede ser: http://sublinear.info/index.php?title=Open_Problems:By_Number.

      –Independientemente de lo anterior también dentro de P hay que distinguir entre los algoritmos necesariamente secuenciales y aquellos que son paralelizables. De momento esta distinción es hipotética: In other words, it is not known whether there are any tractable problems that are inherently sequential. Fuente: http://en.wikipedia.org/wiki/P-complete . Es el no tan famosos problema P versus NC. En cualquier caso hay que tener muy claro si la complejidad se refiere a un algoritmo secuencial o paralelo

      Para aquellos interesados en la temática de los dos últimos puntos Si te interesa una búsqueda google, todos estos temas se suelen etiquetar como “Inside P”.

      En definitiva, no tengo tiempo para entrar en detalles y ya te digo que tengo todo esto muy oxidado, pero el mensaje es que a efectos de comparación de los diferentes métodos tu método con los existentes en cuanto a eficiencia teórica (es decir al margen de máquinas y lenguajes de programación), se debe de tener todos estos factores en cuenta para no comparar peras con manzanas y llegar a conclusiones erróneas…

      Fin actualización.

  10. Victor Luis Says:

    Holas Ignacio…

    Mi Analisis va por buen camino, estoy haciendo paralelamente la optimizacion del algoritmo para l abusqueda de n primos y el test de primalidad directo para un numero de n digitos, al respecto, ya tengo el metodo; pero por ahora solo determina los multiplos de primos hasta 1999, en un numero de n digitos, donde me falta encontrar mas “multiplos comunes” que resultan ser la clave para esto.

    Lo que queria explicarte, respecto a lo que me dices de la complejidad del algoritmo para buscar n primos, claro habiendo antes leido los temas que me sugieres y otros que busque, que no seria entre lineal y cuadradito… permiteme explicarte, la complejidad en los 3 pasos del metodo:

    [ 1º PASO ]
    MP1.LeeDBP
    npo = dbp.np ‘………..numero de primos origen
    fmg = dbp.fm ‘………..factor multiplo de primos origen
    nran = 50000000 ‘….Rango de Busqueda

    ‘** CARGA de NUMEROS BASE en VECTOR VP **
    nv1 = Round((nran / fmg), 0)
    np = nv1 * npo
    For i = 1 To npo
    vp(i) = dbp.ugp(i)
    Next i
    For h = npo + 1 To np
    vp(h) = vp(h – npo) + fmg
    Next h

    ► Al usar 2 bucles separados, la complejidad seria de 2n; donde si n=nran (rango de 50.000.000), no se trabaja con todo, sino con N1= n/3,75 = 13.333.333, por lo que asitoticamente seria O(n/3,75) ó O(n1)
    ○ De este modo el gasto de memoria del CPU es de casi 1/4 parte respecto al rango.

    [ 2º PASO ]
    ‘** OBTENCION de DATOS SECUENCIA **
    upp = vp(np)
    For g = 1 To np
    Select Case vp(g)
    Case Is > 0
    pp = vp(g) ‘Es Numero Primo
    np2 = pp ^ 2
    If np2 > upp Then Exit For

    CalDS
    ‘Devuelve en vector (VDS) los datos de
    ‘secuencia de posicion de multiplos del primo PP

    nds = nds + 1
    ds(nds) = vds

    End Select

    Next g

    ► Aqui se usa un bucle cuya recursividad es de 1 hasta la raiz cuadrada de n1, donde N2=sqrt(n1).
    Internamente llama al Procedimiento CalDS que ejecuta 2 bucles de npo, siendo 2n = n2/456, lo que seria menos del 0.5% de n1; que segun lei, al ser npo infimo, este tendria O(1).
    Hasta aqui la complejidad seria O(sqrt[n/3,75])

    [ 3º PASO ]
    ‘** DEPURACION de MULTIPLOS NO PRIMOS **
    For g = 1 To nds
    pfm = ds(g).vds(0) ‘posicion del 1º multiplo a depurar
    cs = 0 ‘control de datos secuencia

    DepuraMultis
    ‘Marca Multiplos no primos con Datos Secuencia
    ‘de vds()…. pfm= pfm + vds(cs): vp(pfm)= 0

    Next g

    ► En este ultimo paso se ejecuta un bucle hasta n2, osea la raiz cuadrada de n1 y envia a un procedimiento que ejecuta un bucle, que disminuye cada vez, porque los multiplos iran siendo menos, siendo en el peor de los casos log(n1)*3 donde la complejidad seria:
    O (sqrt[n/3,75] + log[n/3,75]*3)
    Y en el mas peor de los casos, donde log(n1)*3 seria n1^2 la complejidad quedaria en:
    O ( n/3,75)

    ENTONCES si la complejidad O(n) es lineal, no estaria entre esta y la cuadratica, sino por debajo de la lineal. Se que me falta definir bien esto; pero como veras no llegaria a pasar la complejidad lineal.

    ◘ Un detalle a aclarar, es que en el 2º Paso, solo en la primera busqueda el bucle se ejecuta sqrt[n1], en las siguientes se obtendran los (DS) datos secuenca partir del ultimo primo utilizado, hasta que el ^2 de uno de los siguientes pase del rango, lo cual es progresivamente menor, donde llegara a ser =0.
    ◘ Por otra parte en el 3º Paso se incrementará la cantidad de primos a depurar sus multiplos se, en relacion al 2º Paso; pero esto no afecta al bucle del procedimiento que se envia, ya que como indique la cantidad de multiplos de los siguientes primos sera progresivamente menor, llegando a depurar 1 o ninguno; por eso indique como en peor de los casos log(n1)*3, estando por debajo de lo Lineal.

    ○ Antes que lo tomes como definitivo, voy a determinar exactamente de cuantos primos se obtiene su DS (2ºPaso) y cuantos multiplos depuran cada uno (3ºPaso) en la primera busqueda de un rango de 50 millones y en la segunda busqueda, de cuantos primos se obtiene su DS y en que proporcion se incrementa el 3ºPaso por los nuevos multiplos a depurar; desde ya la cantidad de los primeros es fija.
    Con esto, se podrá estimar si estoy proximo o no al tamiz de Atkin, lo cual estoy analizando, tanto el algoritmo como la ejecucion del codigo.

    ☼ Espera por favor, a darte datos definidos de la complejidad de mi algoritmo y en base a esto, recibir tu opinion de amplio conocimiento, que me ha guiado y orientado muchisimo, por lo que te estoy agradecido.

    • Ireneses Says:

      Hola Víctor,

      Lamento comentarte que no tendré tiempo en las próximas dos semanas para dedicarle tiempo a esto.

      Solo comunicarte que he visto hoy en Arxiv este artículo que será de tu interés:
      http://arxiv.org/abs/1312.4508
      Creo que el contenido es el mismo que el de un artículo de los mismos autores sobre el que ya te he enlazado en otros comentarios: es un algoritmo distribuido. Me llama la atención que en las referencias no citan el resultado de Atkin-Bernstein.

      saludos

  11. Victor Luis Says:

    Holas Amigo Ignacio…

    No te preocupes amigo, tu me has encaminado y orientado vastante, como te dije soy autodidacta y me apena molestarte; pero solo es para compartir los datos de complejidad que calcule. (sere breve)

    Siendo N= Rango o talla de numeros, indicare como N1= los numeros generados a tratar, donde:

    [ *** BUSQUEDA en 1 RANGO *** ]
    N= 50.000.000

    PASO-1
    N1= 13.333.336 numeros base generados
    Donde: N1 = Raiz 1,0805 de N
    PASO-2
    • Se sacan los DS de 905 numeros primos lo que seria = Raiz 2,4 de N1 Esta cantidad es menor a lo que indicaba que era sqrt[n1]
    • En este paso se realizan 15.385 ciclos
    Complejidad = Raiz 1,7018 de N1
    PASO-3
    • Este paso sería el que se incrementará, conforme el paso-2 determine los primos necesarios para sacas su DS y asi depurar multiplos.
    • De los 905 primos se depuran= 18.027.811 multiplos
    Complejidad: = n1 * 1,35 ó = n1 ^ 1,0185

    [ *** BUSQUEDA en 2 RANGOS *** ]
    N= 100.000.000
    PASO-1
    N1= 26.666.664 numeros base generados
    Donde: N1 = Raiz 1,0773 de N
    PASO-2
    • Se sacan DS de 1.226 primos = Raiz 2,4 de N1
    • Se realizan 20.842 ciclos
    Complejidad = Raiz 1,7190 de N1
    PASO-3
    • De 1.226 primos se depuran= 37.131.533 multiplos
    Complejidad: = n1 * 1,39 ó = n1 ^ 1,0194

    [ *** BUSQUEDA en 10 RANGOS *** ]
    N= 500.000.000
    PASO-1
    N1= 133.333.336 numeros base generados
    Donde: N1 = Raiz 1,07065 de N
    PASO-2
    • Se sacan DS de 2.499 primos = Raiz 2,391 de N1
    • Se realizan 42.483 ciclos
    Complejidad = Raiz 1,7555 de N1
    PASO-3
    • 2.499 primos depuran= 197.394.365 multiplos
    Complejidad: = n1 * 1,48 ó = n1 ^ 1,020972

    RESULTADOS del ANALISIS.
    ◘ En el Paso-1 los numeros base que se generan es casi constante y proporcional al rango o talla de N.
    ◘ En el Paso-2, como ya te habia indicado, la cantidad de primos de los que se saca sus DS, no es Lineal, pues en 1 Rango se necesitaron 905 primos y en 2 Rangos 1.226, observando un incremento de 321 primos al duplicar el rango.
    ○ En 10 Rangos se necesitaron 2.499 primos, en relacion a los 905 de 1 Rango, la diferencia es de 1.594 primos, donde la proporcion del incremento seria de 2,76 = 2.499 / 905
    ○ Debo hacer notar, que buscando en rangos de 50.000.000, en la 1ºBusqueda se sacaran DS de 905 primos, en la 2ºBusqueda solo 321 mas, en la 3ºBusqueda 234 mas, en la 4ºBusqueda 200 mas y asi, lo cual indicaria que no es Lineal y creo que puede ser logaritmico,
    ◘ En el Paso-3, observe que el incremento no es lineal, ya que cada primo depura la misma cantidad de multiplos en cada busqueda para un rango de 50.000.000 como te indico en esta tabla:

    Primo 1ºBusqda 2ºBusqda 3ºBusqda
    7………1.904.762 _ 1.904.762 _ 1.904.762
    11…….1.212.121 _ 1.212.122 _ 1.212.122
    13…….1.025.641 _ 1.025.641 _ 1.025.641

    ○ El incremento sera dado por los nuevos primos que agregue el Paso-2 en cada busqueda, lo cual no es lineal y ademas la cantidad de multiplos de estos será cada vez menor, por lo que asumiria que la tendencia es logaritmica.

    Quiero hacer notar, que para la complejidad use raiz y exponente, pues soy cabeza dura para logaritmos; pero ya me estoy poniendo al dia.
    Voy a analizar el algoritmo de Atkin, que hasta donde vi, depura multiplos casi directos, por asi decirlo; pero trabaja en base a numeros naturales de 0 hasta n, lo cual implica mayor recurso de memoria del CPU.
    Ante eso, encontre una secuencia, que la estoy analizando, para determinar los multiplos comunes de un primo respecto a los de primos anteriores, con lo que pienso disminuir los ciclos de depuracion y marcar multiplos mas directamente.

    Bueno amigo, no quiero quitarte mas de tu tiempo, ya cuando tengas un tiempoito y te muestre los resultados del analisis de Atkin, me podrias dar tu opinion, de la que aprendí mucho….. Gracias.

  12. FABIAN Says:

    Yo tengo una formula sencillita para determinar si el numero es primo o no, con la dificultad que tambien me detecta numeros divisibles por numeros primos,de igual manera esta formula garantiza la posicion real de los numeros primos y los que no seran primos a excepcion de los divisibles por numeros primos exclusivamente, pero mejora ampliamente a la formula 6n+/-1

    Voy a listarte los resultados que me da mi sencilla formula, que solamente me da un factor comun para determinar el numero primo o no primo.

    11 Numero Primo Puro 1, 11
    13 Numero Primo Puro 1, 13
    17 Numero Primo Puro 1, 17
    19 Numero Primo Puro 1, 19
    23 Numero Primo Puro 1, 23
    29 Numero Primo Puro 1, 29
    31 Numero Primo Puro 1, 31
    37 Numero Primo Puro 1, 37
    41 Numero Primo Puro 1, 41
    43 Numero Primo Puro 1, 43
    47 Numero Primo Puro 1, 47
    53 Numero Primo Puro 1, 53
    59 Numero Primo Puro 1, 59
    61 Numero Primo Puro 1, 61
    67 Numero Primo Puro 1, 67
    71 Numero Primo Puro 1, 71
    73 Numero Primo Puro 1, 73
    79 Numero Primo Puro 1, 79
    83 Numero Primo Puro 1, 83
    89 Numero Primo Puro 1, 89
    97 Numero Primo Puro 1, 97
    101 Numero Primo Puro 1, 13
    103 Numero Primo Puro 1, 17
    107 Numero Primo Puro 1, 19
    109 Numero Primo Puro 1, 23
    113 Numero Primo Puro 1, 29
    121 Numero Primo Puro 1, 31
    127 Numero Primo Puro 1, 37
    131 Numero Primo Puro 1, 41
    137 Numero Primo Puro 1, 43
    139 Numero Primo Puro 1, 47
    143 Numero Primo Puro 1, 53
    149 Numero Primo Puro 1, 59
    151 Numero Primo Puro 1, 61
    157 Numero Primo Puro 1, 67
    163 Numero Primo Puro 1, 71
    167 Numero Primo Puro 1, 73
    169 Numero Primo Puro 1, 79
    173 Numero Primo Puro 1, 83
    179 Numero Primo Puro 1, 89
    181 Numero Primo Puro 1, 97
    187 Numero Primo Puro 1, 101
    191 Numero Primo Puro 1, 103
    193 Numero Primo Puro 1, 107
    197 Numero Primo Puro 1, 109
    199 Numero Primo Puro 1, 113
    209 Numero Primo Puro 1, 121
    211 Numero Primo Puro 1, 127
    221 Numero Primo Puro 1, 131
    223 Numero Primo Puro 1, 137
    227 Numero Primo Puro 1, 139
    229 Numero Primo Complejo 1, 11, 13, 143
    233 Numero Primo Puro 1, 149
    239 Numero Primo Puro 1, 151
    241 Numero Primo Puro 1, 157
    247 Numero Primo Puro 1, 163
    251 Numero Primo Puro 1, 167
    253 Numero Primo Puro 1, 169
    257 Numero Primo Puro 1, 173
    263 Numero Primo Puro 1, 179
    269 Numero Primo Puro 1, 181
    271 Numero Primo Puro 1, 187
    277 Numero Primo Puro 1, 191
    281 Numero Primo Puro 1, 193
    283 Numero Primo Puro 1, 197
    289 Numero Primo Puro 1, 199
    293 Numero Primo Puro 1, 209
    299 Numero Primo Puro 1, 211
    307 Numero Primo Complejo 1, 13, 17, 221
    311 Numero Primo Puro 1, 223
    313 Numero Primo Puro 1, 227
    317 Numero Primo Puro 1, 229
    319 Numero Primo Puro 1, 233
    323 Numero Primo Puro 1, 239
    331 Numero Primo Puro 1, 241
    337 Numero Primo Complejo 1, 13, 19, 247
    341 Numero Primo Puro 1, 251
    347 Numero Primo Complejo 1, 11, 23, 253
    349 Numero Primo Puro 1, 257
    353 Numero Primo Puro 1, 263
    359 Numero Primo Puro 1, 269
    361 Numero Primo Puro 1, 271
    367 Numero Primo Puro 1, 277
    373 Numero Primo Puro 1, 281
    377 Numero Primo Puro 1, 283
    379 Numero Primo Complejo 1, 17, 289
    383 Numero Primo Puro 1, 293
    389 Numero Primo Complejo 1, 13, 23, 299
    391 Numero Primo Puro 1, 307
    397 Numero Primo Puro 1, 311
    401 Numero Primo Puro 1, 313
    403 Numero Primo Puro 1, 317
    407 Numero Primo Complejo 1, 11, 29, 319
    409 Numero Primo Complejo 1, 17, 19, 323
    419 Numero Primo Puro 1, 331
    421 Numero Primo Puro 1, 337
    431 Numero Primo Complejo 1, 11, 31, 341
    433 Numero Primo Puro 1, 347
    437 Numero Primo Puro 1, 349
    439 Numero Primo Puro 1, 353
    443 Numero Primo Puro 1, 359
    449 Numero Primo Complejo 1, 19, 361
    451 Numero Primo Puro 1, 367
    457 Numero Primo Puro 1, 373
    461 Numero Primo Complejo 1, 13, 29, 377
    463 Numero Primo Puro 1, 379
    467 Numero Primo Puro 1, 383
    473 Numero Primo Puro 1, 389
    479 Numero Primo Complejo 1, 17, 23, 391
    481 Numero Primo Puro 1, 397
    487 Numero Primo Puro 1, 401
    491 Numero Primo Complejo 1, 13, 31, 403
    493 Numero Primo Complejo 1, 11, 37, 407
    499 Numero Primo Puro 1, 409
    503 Numero Primo Puro 1, 419
    509 Numero Primo Puro 1, 421
    517 Numero Primo Puro 1, 431
    521 Numero Primo Puro 1, 433
    523 Numero Primo Complejo 1, 19, 23, 437
    527 Numero Primo Puro 1, 439
    529 Numero Primo Puro 1, 443
    533 Numero Primo Puro 1, 449
    541 Numero Primo Complejo 1, 11, 41, 451
    547 Numero Primo Puro 1, 457
    551 Numero Primo Puro 1, 461
    557 Numero Primo Puro 1, 463
    559 Numero Primo Puro 1, 467
    563 Numero Primo Complejo 1, 11, 43, 473
    569 Numero Primo Puro 1, 479
    571 Numero Primo Complejo 1, 13, 37, 481
    577 Numero Primo Puro 1, 487
    583 Numero Primo Puro 1, 491
    587 Numero Primo Complejo 1, 17, 29, 493
    589 Numero Primo Puro 1, 499
    593 Numero Primo Puro 1, 503
    599 Numero Primo Puro 1, 509
    601 Numero Primo Complejo 1, 11, 47, 517
    607 Numero Primo Puro 1, 521
    611 Numero Primo Puro 1, 523
    613 Numero Primo Complejo 1, 17, 31, 527
    617 Numero Primo Complejo 1, 23, 529
    619 Numero Primo Complejo 1, 13, 41, 533
    629 Numero Primo Puro 1, 541
    631 Numero Primo Puro 1, 547
    641 Numero Primo Complejo 1, 19, 29, 551
    643 Numero Primo Puro 1, 557
    647 Numero Primo Complejo 1, 13, 43, 559
    649 Numero Primo Puro 1, 563
    653 Numero Primo Puro 1, 569
    659 Numero Primo Puro 1, 571
    661 Numero Primo Puro 1, 577
    667 Numero Primo Complejo 1, 11, 53, 583
    671 Numero Primo Puro 1, 587
    673 Numero Primo Complejo 1, 19, 31, 589
    677 Numero Primo Puro 1, 593
    683 Numero Primo Puro 1, 599
    689 Numero Primo Puro 1, 601
    691 Numero Primo Puro 1, 607
    697 Numero Primo Complejo 1, 13, 47, 611
    701 Numero Primo Puro 1, 613
    703 Numero Primo Puro 1, 617
    709 Numero Primo Puro 1, 619
    713 Numero Primo Complejo 1, 17, 37, 629
    719 Numero Primo Puro 1, 631
    727 Numero Primo Puro 1, 641
    731 Numero Primo Puro 1, 643
    733 Numero Primo Puro 1, 647
    737 Numero Primo Complejo 1, 11, 59, 649
    739 Numero Primo Puro 1, 653
    743 Numero Primo Puro 1, 659
    751 Numero Primo Puro 1, 661
    757 Numero Primo Complejo 1, 23, 29, 667
    761 Numero Primo Complejo 1, 11, 61, 671
    767 Numero Primo Puro 1, 673
    769 Numero Primo Puro 1, 677
    773 Numero Primo Puro 1, 683
    779 Numero Primo Complejo 1, 13, 53, 689
    781 Numero Primo Puro 1, 691
    787 Numero Primo Complejo 1, 17, 41, 697
    793 Numero Primo Puro 1, 701
    797 Numero Primo Complejo 1, 19, 37, 703
    799 Numero Primo Puro 1, 709
    803 Numero Primo Complejo 1, 23, 31, 713
    809 Numero Primo Puro 1, 719
    811 Numero Primo Puro 1, 727
    817 Numero Primo Complejo 1, 17, 43, 731
    821 Numero Primo Puro 1, 733
    823 Numero Primo Complejo 1, 11, 67, 737
    827 Numero Primo Puro 1, 739
    829 Numero Primo Puro 1, 743
    839 Numero Primo Puro 1, 751
    841 Numero Primo Puro 1, 757
    851 Numero Primo Puro 1, 761
    853 Numero Primo Complejo 1, 13, 59, 767
    857 Numero Primo Puro 1, 769
    859 Numero Primo Puro 1, 773
    863 Numero Primo Complejo 1, 19, 41, 779
    869 Numero Primo Complejo 1, 11, 71, 781
    871 Numero Primo Puro 1, 787
    877 Numero Primo Complejo 1, 13, 61, 793
    881 Numero Primo Puro 1, 797
    883 Numero Primo Complejo 1, 17, 47, 799
    887 Numero Primo Complejo 1, 11, 73, 803
    893 Numero Primo Puro 1, 809
    899 Numero Primo Puro 1, 811
    901 Numero Primo Complejo 1, 19, 43, 817
    907 Numero Primo Puro 1, 821
    911 Numero Primo Puro 1, 823
    913 Numero Primo Puro 1, 827
    919 Numero Primo Puro 1, 829
    923 Numero Primo Puro 1, 839
    929 Numero Primo Complejo 1, 29, 29, 841
    937 Numero Primo Complejo 1, 23, 37, 851
    941 Numero Primo Puro 1, 853
    943 Numero Primo Puro 1, 857
    947 Numero Primo Puro 1, 859
    949 Numero Primo Puro 1, 863
    953 Numero Primo Complejo 1, 11, 79, 869
    961 Numero Primo Complejo 1, 13, 67, 871
    967 Numero Primo Puro 1, 877
    971 Numero Primo Puro 1, 881
    977 Numero Primo Puro 1, 883
    979 Numero Primo Puro 1, 887
    983 Numero Primo Complejo 1, 19, 47, 893
    989 Numero Primo Complejo 1, 29, 31, 899
    991 Numero Primo Complejo 1, 17, 53, 901
    997 Numero Primo Puro 1, 907
    911 Numero Primo Puro 1, 911
    913 Numero Primo Complejo 1, 11, 83, 913
    919 Numero Primo Puro 1, 919
    923 Numero Primo Complejo 1, 13, 71, 923
    929 Numero Primo Puro 1, 929
    937 Numero Primo Puro 1, 937
    941 Numero Primo Puro 1, 941
    943 Numero Primo Complejo 1, 23, 41, 943
    947 Numero Primo Puro 1, 947
    949 Numero Primo Complejo 1, 13, 73, 949
    953 Numero Primo Puro 1, 953
    961 Numero Primo Complejo 1, 31, 31, 961
    967 Numero Primo Puro 1, 967
    971 Numero Primo Puro 1, 971
    977 Numero Primo Puro 1, 977
    979 Numero Primo Complejo 1, 11, 89, 979
    983 Numero Primo Puro 1, 983
    989 Numero Primo Complejo 1, 23, 43, 989
    991 Numero Primo Puro 1, 991
    997 Numero Primo Puro 1, 997

  13. Victor Luis Says:

    Holas …. IGNACIO y un saludo a Fabian

    Ignacio, espero me sigas permitiendo acotar mis avances en esta tu pagina y agradecerte por la mucha ayuda que me diste…
    Sin entrar en detalles te dire que descargue la aplicacion Primesieve que es la version mejorada del algoritmo de Eratostenes y que segun indica la publicacion superaria al tamiz de Atkin.
    Esto me hizo desarrollar otro algoritmo para Cargar los DS (Datos Secuencia) a un limite mayor y desde ahi buscar numeros primos. Creo haberte comentado que esto era posible y lo es… el año pasado mi busqueda estaba en los 3 Billones y ahora pude saltarme a los 6.6 Trillones donde al buscar desde ahi encontre estos numeros primos:

    6.600.000.000.089.999.663
    6.600.000.000.089.999.707
    6.600.000.000.089.999.749
    6.600.000.000.089.999.759
    6.600.000.000.089.999.777
    6.600.000.000.089.999.779
    6.600.000.000.089.999.803
    6.600.000.000.089.999.819
    6.600.000.000.089.999.821
    6.600.000.000.089.999.887
    6.600.000.000.089.999.897
    6.600.000.000.089.999.939
    6.600.000.000.089.999.953
    6.600.000.000.089.999.963
    6.600.000.000.090.000.001

    El proceso que podia llevarme dias, ahora mi algoritmo lo realiza en un par de horas, tomando en cuenta que me falta depurarlo para establecer su complejidad.

    ○ Encontre otras caracteristicas de los Primos Origen, como el que estos se dividen en 2 Grupos, segun la posicion del cuadrado de sus primos multiplos y/o originados, siendo otro dato que demuestra que los primos origen contienen toda la informacion de los numeros primos originados de cada uno.

    ○ Al llegar a los 108.090 Billones las variables dejaron de ser eficientes, siendo que no realizo operaciones complejas; pero gracias a las propiedades de los primos origen, pude continuar y llegar al Trillon, utilizando el mismo ordenador Pentium III y tratando a las cantidades de otra manera, para no exederme del billon y las operaciones sean correctas. Mi objetivo es llegar al cuatrillon para poner a prueba de fuego mis metodos y continuar con el cargado y busqueda de numeros primos correctamente.

    ◘ Comentando sobre la publicacion de Fabian, respetando su criterio, hasta donde comprendi sobre los primos origen, no es posible tener un algoritmo que genere directamente todos los numeros primos en forma ordenada. Pero si es posible crear un algoritmo que genere directamente todos los numeros primos correspondientes a cada primo origen. Pero tal vez, con el conocimiento de los matematicos de hot en dia, se cree un algoritmo fusionado o mixto, que genere ordenadamente y directamente todos los numeros primos.
    ○ Por ultimo, decirle a Fabian, que un algoritmo debe ser eficiente, tanto para depurar los no primos e identificar los que si son, en un tiempo minimo y permita buscar hasta N primos.

    • Ireneses Says:

      Adelante, por mi parte ningún problema en que se utilice esta plataforma. Solo informaros que por falta de tiempo no podré participar.

      saludos

      Actualización:

      El que quiera enriquecer este blog con sus comentarios debería también leer la nueva política al respecto: https://ireneses.wordpress.com/sobre-lectores-rss-y-comentarios-en-el-blog-about-rss-readers-and-blog-comments/

      Un problema causado por un delincuente de internet (un ladrón sistemático de contenidos, que además, según he visto, está implicado en otros asuntos turbios de internet) y la política del buscador google (que ha sido más favorable al delincuente que a mi mismo de momento) me han obligado a ello.

      Estoy tomando medidas (no puedo dar más detalles) y espero que se solucione pronto el problema, pero no creo que cambie ya la política de comentarios: así espero poder mantener bajo control la difusión de los contenidos del blog.

  14. Victor Luis Says:

    Gracias por tu responsabilidad Amigo Ignacio…

    Pero como tu bien me aconsejaste, me abstengo de publicar los datos y procesos clave, para que no sea plagiado mi investigacion y/o descubrimiento.
    ○ El PseudoCodigo y pasos que publique en tu pagina, solo indican el desarrollo, para que se entienda o comprenda lo simple del proceso; pero hay calculos esenciales en subrutinas, que sin ellos es lo mismo que nada. Es mas, el algoritmo que te presente el año pasado, ahora es casi, totalmente diferente, pues para llegar a buscar en el limite de trillones, los resultados de las operaciones deben ser precisas y correctas, lo cual, aplicando las nuevas propiedades de los primos origen que encontre, me permiten verificar esto; seria imposible hacerlo con el algoritmo anterior.
    * Mi poca formacion en matematicas, me ha ido dando tropiezos; pero por ensayo y error y las ideas que no se de donde me vienen, he simplificado bucles recursivos, para aplicar calculos directos, lo cual aceleró el proceso en un 90%.

    ○ Cuando llegue al Cuatrillon, te informare de los avances logrados y que otras propiedades encuentre de los primos origen, que hasta el momento, me han servido para avanzar y mejorar mi algoritmo.

    • Ireneses Says:

      Por cierto os informo sobre el tipo de ciber-delincuente que está abusando de mi con plena impunidad.

      El nombre seguramente es ficticio. Tiene nacionalidad y residencia desconocida, con sociedades o actividades fraudulentas registradas al menos en EEUU y la UE (Alemania) y está vinculado a actividades criminales en internet de muy diverso tipo o pelaje. Por eso mismo no quiero que se asocie mi nombre ni el de este blog ni el de sus lectores o comentaristas a su nombre ni al de sus empresas o plataformas web.

      Pero ni responde a los e-mails ni hace lo que se le pide (que por supuesto es legal) por las buenas. Solo responde ante las amenazas. Tampoco responden a los e-mails ni hacen lo que se les pide ni está sirviendo de ayuda en esto el servicio de asistencia al usuario del buscador de google. Ojo, aunque a veces lo pienso, no estoy afirmando que ambos, este individuo y buscador de google sean complices. Pero estoy dándo los pasos para que a los dos les caiga un buen paquete (como decimos en España). A cada uno lo suyo.

      Os comento todo esto en caso de que os crucéis con este indeseable (o con el inoperante servicio de asistencia al usuario de google) en el futuro.

  15. Victor Luis Says:

    Tranquilo AMIGO IGNACIO…

    Tienes todo el derecho que hacerte respetar y que respeten tu pagina web… me acuerdo cuando lo vi por primera vez y pense el tiempo que le habra llevado recopilar tanta informacion al respecto y luego supe la amplia preparacion y conocimiento en matematicas y sobre el tema de los numeros primos… gracias a tu guia pude orientarme y saber que hacer y como hacerlo.

    Una consulta, si dispones de tiempo claro esta… No comprendo bien sobre la “Hipotesis General de Riemann” en una publicacion indican que de la lista de numeros naturales hasta N se depuran los que sean multiplo del cuadrado de los numeros de la lista. De los que sobran se determinan cuales son Buenos y Malos segun sean multiplo del producto de par de primos o impar de primos.
    Luego se saca la diferencia de malos y buenos o buenos y malos, donde esto nunca seria mayor a 1/n E1/2 lo cual seria cierto; pero tambien encontraron que hay muchos malos>buenos y muchos buenos>malos.
    ○ Mi pregunta es: En que sirve esto, ya que esta relacionado con la distribucion y limite de numeros primos; y segun otras publicaciones demostrar esta hipotesis seria fundamental para el teorema de los numeros primos.
    * Creo que no comprendi bien de lo que es y debe haber otros datos mas sobre la hipotesis de Riemann. Tambien esta la Funcion-Z que relaciona los ceros con la distribucion de los numeros primos… cuando tengas un tiempo libre te pediria que compartas tu opinion, mientras ire leyendo otra publicaciones.

    ◘ Te comento, que al revisar esto, se me ocurrio buscar primos de manera directa con solo los primos origen, donde indico un rango y de esto se genera los numeros base como lo hace mi algoritmo.
    Como todos son candidatos a ser primos, depura los que no son, evaluando si son multiplos de cada primo origen y sus primos originados. Aunque el proceso tarda un poco, es efectivo, compare los numeros primos encontrados con los de mis archivos y coinciden.
    ○ La recursividad se incrementa al aumentar el tamaño del numero base a evaluar, ya que seran mas los primos originados que puede ser divisor del numero base; pero no asi la cantidad de primos origen, pues esto es fijo y son pocos.
    ○ Pienso que debe haber otra propiedad de los primos origen, que indique con que primos origen y sus originados puede ser multiplo un numero base y asi reducir la cantidad de bucles recursivos.
    * Digo esto, porque realice un breve analisis y encontre un patron que se repite entre el primo origen del numero base que no es primo y el primo origen del que fuera su divisor. Como los primos origen se dividen en 2 grupos, debe haber otras relaciones mas que los hacen afines a unos y opuestos a otros.
    ►Completando este algoritmo que es sumamente corto y simple, seria una forma mas de verificar los numeros primos, desde ya, es mas rapido que el metodo clasico, donde verificamos que sea primo si este no es multiplos de primos anteriores hasta su raiz cuadrada.

    ☼ Cuando obtenga resultados concretos, te los dare a conocer, como asi tambien del nuevo algoritmo que busca numeros primos directamente desde un limite hasta un rango indicado.

    • Ireneses Says:

      Hola Víctor,

      Hoy he puesto una denuncia ante la policía española denunciando todo esto e intentaré llegar hasta el final tanto contra el titular de la plataforma que ha robado los contenidos como contra google.

      Lamento no poder ayudarte con tus preguntas, y no solo por falta de tiempo. Desconozco todo sobre la hipótesis de Riemann.

      saludos
      Ignacio

  16. Victor Luis Says:

    Tienes mi apoyo Amigo IGNACIO…

    Aunque en mi pais estamos muy atrasados en estos temas, se que tu tienes el pleno derecho de autor de tu pagina y/o espacio web, lo cual debe respetarse como cualquier propiedad privada. No comprendo la finalidad de la gente sin oficio, que busca dañar un medio de comunicacion y publicacion, sobre lo que uno aprende y desarrolla por propio interes. Eso tiene nombre… es “envidia” “egoismo” para no compartir lo que a ellos no se les ilumina y andan en medias tintas toda su vida.

    ○ Bueno Amigo, sobre la hipotesis de Riemann, no te molesto con eso, ya lei un poco y es mucha matematica factorial para mi y aunque no comprendi del todo, no creo que sea la hipotesis fundamental de la organizacion de los numeros primos, como piensa y lo sostiene un amigo que conoci… que aunque no se lo puede demostrar, por su antiguedad se estaria dando de valido y eso no me parece nada logico.

    ○ Lo que queria adelantarte, es que termine la estructura basica de mi nuevo metodo o algoritmo y evaluandolo, deja atras a los que habia desarrollado, el proceso es simple:
    ◘ Se indica un Limite desde donde buscar y un Rango para exportar los numeros primos que hayan en este. Del rango se calcula los numeros base, que como ya indique se reduce a casi 1/4 parte, donde estan los posibles primos. No es preciso usar un array para cargarlos, pues a medida que se avanza se determina si el numero es o no primo; mas para agilizar el proceso, se usa un array tipo boolean o integer.
    ◘ Un bucle recorre el array, evaluando solo los que no hayan sido marcados como no primos. Siendo PP= el numero base, este es evaluado por cada Primo Origen y los primos que origina cada uno, hasta un limite confiable, donde si no hay un divisor primo, que indique que sea multiplo, se considera como numero primo valido.
    ◘ Si PP es un Multiplo no primo, se marca como False en el array y se determina el primo origen al que pertenecen, tanto del multiplo como del primo que es su divisor, con esto se marcan como False en el array, todos los multiplos, tanto del primo divisor, de su primo origen y de todos los primos que se originan de este y que esten comprendidos en el rango. Esto disminuye la cantidad de numeros base a evaluar y acelera notablemente el proceso.
    ◘ He comprobado la busqueda hasta el Limite de 990.000.000.000.000 y encuentra la cantidda correcta de numeros primos. Pasando este limite, se obtienen resultados incorrectos, por el redondeo que se efectua en la variable double y no asi por el metodo de busqueda directa. Intente hacer la busqueda de este limite, con el metodo tradicional, evaluado si es divisible por algun primo hasta su raiz cuadrada; pero el tiempo del proceso para los primeros numeros base, es una eternidad, en comparaciones es ineficiente, ademas de la necesidad de contar con una amplia base de numeros primos, lo que consume mucho recurso al equipo.

    ► El proceso de este metodo es una combinacion, entre determinar directamente si un numero es primo o no, con solo la ultizacion de los primos origen y marcar en el array los multiplos de cada primo origen y sus primos originados.
    Encontre otra secuencia y unos datos que me faltan por analizar, para completar el desarrollo del algoritmo, que aunque es ya eficiente, se lo puede mejorar, hasta donde mis escasos conocimientos matematicos me lo permitan.

    ☼ Saludos Amigo… mi apoyo en la distancia, para hacer respetar la violacion a tu espacio web… suerte y adelante.

    • Ireneses Says:

      Hola Victor,

      Gracias por tu apoyo. Comparto tu posición sobre este tema y seguramente se irán tomando medidas por las correspondientes autoridades para corregir este tipo de agresiones. Por mi parte, además de con la denuncia policial he decidido ir adelante con una demanda civil tanto contra el titular de la plataforma como contra el buscador. Ya se lo he comunicado al buscador por una vía aceptada judicialmente en España, el burofax, ya que en mi opinión está actuando de manera cómplice (al menos de manera implícita).

      Ya ves que, como explico en mi última entrada relacionada con esto (https://ireneses.wordpress.com/2014/02/14/el-burofax-enviado-a-google-espana/) todo este asunto me está afectando psicológicamente y no he podido ni leer el resto de tu comentario. No me puedo concentrar y como sabes las matemáticas requieren concentración.

      Espero poder dedicarles un poco de tiempo (no te garantizo nada, ya que también estoy muy ocupado con otros asuntos), a este y otros anteriores una vez solucione este asunto.

      saludos
      Ignacio

  17. Victor Luis Says:

    Holas Amigo…

    Comprendo tu estado y no es para menos… mas como aconsejo en estos casos de demanda, es planificar una estrategia, asi como si fuera una partida de ajedrez, evaluando el elemento causal y organizando los elementos probatorios para justificarlo. El valor de estos dos elementos te garantizan un fallo a favor y los tienes; por demas esta decirte que la negligencia de los demandados en ocultar la cabeza bajo la tierra como el avestruz, al no responder a tu reclamo, constituyen elemntos probatorios de su culpabilidad, complicidad y encubrimiento, ante un delito publico contra la propiedad intelectual.
    ○ Por desgracia el procedimiento judicial lleva su tiempo, por lo que hecha la planificacion, lo que sigue es cosa del abogado y uno no debe caer en el stres, ya que esto afecta nuestra salud mental y fisica…. recuérdalo.

    ○ Respecto al los temas que escribi, no te preocupes, lo hago para seguir aportando a tu pagina con mi pequeño proyecto y para hacer presencia en la continuidad del mismo. Luego habra tiempo para analizar estos y otros temas amigo.

    ◘ Complementando sobre mi nuevo algoritmo, para buscar numeros primos desde un limite en un rango dado, que llamariamos PROG-A hice otra aplicacion con el metodo clasico que seria PROG-B, compare sus tiempos de busqueda:

    * Limite:600.000.000 Rango: 15.000
    Prog-A= 00:00:03 Prog-B= 00:00:26

    * Limite:6.000.000.000 Rango: 15.000
    Prog-A= 00:00:11 Prog-B= 00:01:05

    * Limite:600.000.000 Rango: 30.000
    Prog-A= 00:00:20 Prog-B= 00:02:10
    (rango duplicado)

    * Limite:30.000.000.000 Rango: 60.000
    Prog-A= 00:01:23 Prog-B= 00:08:11
    (rango y limite ampliado)

    ○ Como veras, el nuevo algoritmo es mucho mas rapido en determinar si un numero es o no primo, para lo cual solo utiliza los Primos Origen y sus secuencias. Mientras que el metodo clasico, necesita de una base de primos verificados para determinar si es multiplo de estos.

    ► Con esto quiero manifestar, que es errado pensar en los numeros primos como elementos individuales, como se los daria a entender al indicar que son divisibles entre 1 y si mismo; esto es cierto; pero su origen esta dado de unos cuantos numeros que son los Primos Origen, los que transmiten propiedades generales y particulares a los primos que se originaran de cada uno de estos.

    ○ Ahora estoy analizando, las subdivisiones que habria dentro de los primos origen, lo que pienso permitira determinar directamente si un numero es primo o no, aplicando un simple calculo.

    ☼ Bueno Amigo, se que lograras tus objetivos y no les des el gusto de que esto afecte tu estado emocional, mental y fisico especialmente.

    • Ireneses Says:

      ¿ Ajedrez Víctor ? Jugué de joven, casi siempre con mi hermano pequeño y siempre le ganaba (él siempre afirma lo contrario). Hace unos años volví a jugar dos o tres tardes a través de Internet y no se me dio mal tampoco. Por determinados motivos que no viene al caso explicar, lo tuve que dejar. Si lo que dices es cierto, es una buena señal, aunque el problema con los juicios son primero los abogados🙂 y segundo los jueces. Esto hace de este ajedrez un juego con unas reglas cambiantes.

      P.s. Veo que sigues con la idea de primos origen. Pensé que tras leer la literatura que te recomendé la habrías abandonado…Suerte de cualquier manera.

  18. Victor Luis Says:

    El Ajedrez es un deporte que te limpia la mente, al menos asi funciona para mi. Cuando atravesaba por algun problema, antes de tomar una decision o analizarlo, jugaba unas partidas con la computadora. Donde si perdia las primeras, era porque no estaba pensando bien, por lo que a seguir hasta ganar una o varias partidas. Luego de eso, miraba el problema con mas claridad y encontraba las mejores y favorables soluciones, sin mucho esfuerzo ni stres.
    * En las demandas que me planteo mi ex, por todo y por nada, el primer abogado que tome que era compañero y amigo de colegio, me dijo algo claro: “Para ganar un caso, imagina que el juez es esta pared y a esta pared tienes que demostrar y convencer que tu tienes la razon”. Por lo que aprendi que debo reunir todas las pruebas necesarias, habidas y por haber, para sustentar la defensa o acusacion en una demanda. Como te imaginaras, me fui mullido de papeles y sali victorioso en mi primera demanda.
    ○ Lo de los Jueces como dices es un tanto diferente y muchas veces no actuan de forma impacial; pero tambien se que hay un limite y que si pasan de este, hay recursos para suspenderlos. En otra ocasion me toco un juez prepotente, donde yo hacia la observacion en los errores de una liquidacion y me llamo a su despacho; le mostre las planillas impresas que lleve y le dije que 2+2=4 no hay donde mas, en aqui o en cualquier parte del mundo… donde este llamo la atencion al encargado y que se haga como debe ser.

    ◘ Bueno son anecdotas legales, donde veo que competimos mediante abogados y juzgados, un desafio entre nuestras maneras de pensar y es por eso que lo asemejo a una partida de ajedrez.

    ○ Sobre los “Primos Origen” que mas te puedo decir, para mi esta claro y demostrado que su presencia es importante en la comprension de los numeros primos, no verlos como elementos individuales, sino provenientes de unos primos especiales que determinan su organizacion mediante secuencias y factores, donde los calculos se realizan con simples operaciones aritmeticas.
    ○ El codigo de mi ultimo algoritmo de busqueda directa, asi sin depurarlo, no tiene mas de 30 lineas y es eficiente, digno de compararse con “Primesieve” que es la ultima mejora del tamiz de Eratostenes y que superaria al de Atkin, segun lo que afirman en su publicacion.
    ○ Vino mi hermano David en navidad y le explique sobre los Primos Origen, comprendio y me dijo que “Sí estaba descubriendo la polvora”; pero que debo sustentarlo, para explicar no solo como funciona, sino por qué se da esto, de donde salen los factores clave, la cantidad de primos origen, por qué estos en particular y otras preguntas al respecto, para luego patentarlo y publicarlo.
    * Voy a trabajar en ello, aplicando la enseñanza que me diste en el campo de las matematicas, elaborando el pseudocodigo, calculando su complejidad y definiendo los elementos importantes que maneja el algoritmo.

    • Ireneses Says:

      1. Yo tengo algo de experiencia en estos temas (de hecho ahora, por motivos profesionales, estoy leyendo bastante de temas relacionados). No me refería tanto a la corrupción (que también existirá, no digo que no). La Ley, de manera inevitable (lo contrario es casi imposible), deja todo bastante abierto. Y esto deja libertad a los jueces para interpretar. Y a veces estas interpretaciones no son a gusto de uno. Me pregunto si alguna vez llegará a haber jueces robotizados. Input: caso, ley y pruebas de cada parte; Output: sentencia. A priori lo veo posible pero el diablo está en los detalles. Lo más complicado, la valoración de las pruebas.

      Yo en este caso, sobre todo contra el buscador, creo que podría construir una demanda bien armada. El “agresor” finalmente reaccionó y según me ha comunicado en su último e-mail, él no puede corregir la situación actual (como ya no me fio de él, estoy a la espera de la respuesta del buscador para ver si confirma o desmiente ésto). Y reconozco que incluso en una eventual demanda contra el buscador, hay varias cuestiones que no tengo claras: primero si el haber iniciado una vía penal me permite abrir una vía civil paralela; segundo, no tengo muy claro a quien debería de demandar, si a google españa (esto facilitaría mucho todo) o si a otra sede; tercero si el tipo de pruebas que tengo, por ejemplo un pantallazo, son admisibles o no…La semana que viene iré cerrando estas incógnitas y en función de la respuesta del buscador al burofax (si contestan) decidiré.

      2. Ya sabes que en ajedrez teórico (que me interesa más que el juego en sí) todavía hay un importante problema abierto. Se sabe que es un juego determinado (según el teorema de Zermelo, que es más general, no solo se refiere al ajedrez: http://en.wikipedia.org/wiki/Zermelo%27s_theorem_(game_theory)), es decir que tiene que haber una estrategia perfecta según la cual o ganan blancas, o ganan negras o termina en tablas. Pero no se sabe cual de las tres alternativas es la que se daría en ésta estrategia perfecta. Sí se conoce cual es la alternativa de juego perfecto en otros juegos similares:por ejemplo en lo que en España llamamos damas, terminaría en empate (http://es.wikipedia.org/wiki/Damas). Por la cantidad de posibilidades, es un problema complicado. Incluso aunque se conociese la respuesta encontrar la estrategia no sería obvio.

      También cabe comparar la automatización de este juego con el juez robotizado. Aquí sí se ha conseguido con éxito. Uno de los pioneros fue español, Torres Quevedo (http://es.wikipedia.org/wiki/El_Ajedrecista). ¡ A que niveles de los jugadores automáticos ganas Víctor ?

      3 ¿ Planilla ? ¿ Hablamos de un tema laboral ?

      4. Todavía no tengo claro si el conjunto de primos origen del que hablas es finito o infinito. Si hablas de un conjunto finito a partir del cual puedas generar de manera directa el resto de primos, dudo mucho que estés en lo correcto…

      Actualización mismo día.

      Un artículo interesante sobre el resultado de Zermelo: http://www.econ.canterbury.ac.nz/personal_pages/paul_walker/pubs/zermelo-geb.pdf

      He estado pensando sobre esto. La demostración para el juego de damas es de fuerza bruta. Ya que se conoce el resultado en este caso, sería interesante ver si existe una demostración de otro tipo de esto mismo (es decir que si los dos jugadores juegan perfecto, el juego termina en damas), aunque sea puramente existencial y ver en que medida esta demostración se puede generalizar al ajedrez. Las damas es un juego mucho más simétrico que el ajedrez y por lo tanto aparentemente más sencillo que éste: todas las piezas “se comportan” de la misma manera. Pero quizás el resultado final de este tipo de juegos no dependa tanto del tipo de comportamiento de las piezas sino de otras propiedades del juego: tablero finito, paridad del tamaño del tablero etc…Especulo claro.

      Fin actualización.

  19. Victor Luis Says:

    NOVEDADES Amigo Ignacio…

    Mas antes, acotando a lo que mencionaste:
    1°] Eso del Input y Output seria ideal; pero no creo que se llegue a tener “Jueces Informaticos” que aunque darian el mejor fallo imparcial, segun las pruebas presentadas, esto no siempre refleja la justicia y lo verdadero en si.
    Si miraste la pelicula “Sentencia Previa” con el actor Tom Cruise, ya sabian el crimen que se iva a cometer, donde, cuando y por quien; pero lo que no sabian era el …por qué!?
    La justicia es ciega y eso me parece bien, un juez informatico seria lo mas parecido a esto; pero si se implementan nuevos y efectivos elementos probatorios, como el poligrafo actual y hasta esos videntes de la pelicula, tu idea seria lo mejor para la humanidad… pero… pero como sabes, todos estariamos bajo la misma lupa y seriamos medidos por la misma bara y eso no les convendria a muchos que actuan como dueños del mundo.
    ○ Toda prueba es util si esta relacionada a la causalidad de la demanda; pero debe ser validado para ser tomado en cuenta, eso tambien lo aprendi y creo que debes hacerlo con las pruebas que tengas y/o conseguir otras para respaldarlas.

    2°] Como mencionas, las Damas son un juego mas simetrico y en lo particular no me atraen. Un amigo mio de facultad me daba paliza, por lo que analice y encontre movimientos esenciales, como avanzar por los lados, donde llega un punto bloqueado donde un movimiento determina toda la partida. Es predecible saber quien ganara y lo hace quien comienza osea las fichas rojas, claro que dependiendo, se hagan los movimientos standarizados.
    ○ El Ajedrez como indicas, es un juego mas complejo, donde las alternativas de una jugada van cambiando segun el avance y el ataque, de uno y de otro oponente. Eso es lo interesante, si solo se ve las jugadas actuales, es muy probable que uno pierda. Por mi parte, al jugar, visualizo desde el 2° ó 3° movimiento iniciales, los posibles caminos de avance y ataque, tanto del oponente como del mio, lo cual repercutira en las jugadas posteriores.
    ○ Yo jugaba en un programa que descargue de Ajedrez-21 y me destacaba entre el Nivel medio a superior. Luego baje Chenard es un pequeño y simpatico programa, creado por Don Cross, y que es un poco dificil de vencer, no tiene niveles y ataca sin misericordia. Para comparar su jugada perfecta, abri dos aplicaciones de esta y los puse a jugar, donde quedaron en tablas y en algunas, ganaban las blancas; lo bueno es que las aperturas no eran las mismas como otros programas.

    3°] Pues si eran “Planillas” de liquidacion por asistencia familiar, donde el actuario, supongo en complicidad con mi ex, sacaba sumas fabulosas; mas mis planillas y el decirle al juez que 2+2=4 como verdad absoluta, justificaron para que el juez regañe al actuario e invalide la planilla.

    4°] Ahora las NOVEDADES Amigo y sobre los PRIMOS ORIGEN.
    ○ El conjunto de Primos Origen es finito y como mencione no son mucho, no pasan de 10. Disculpa pero no podré decirte cuales ni cuantos son, tan solo indicar que NPO sera el numero de primos origen.
    * Sobre tu duda de poder generar directamente todos los primos, te dire que estoy en lo correcto y en esta tu pagina, dare la primicia de lo ultimo encontrado; pero antes te comentare una aplicacion que hice, tipo factorizacion.

    ◘ DETERMINAR si un NUMERO es PRIMO o COMPUESTO.
    ○ Hice un algoritmo que no tiene mas de 10 lineas de codigo y determina si el numero indicado es primo o no, utilizando solo los primos origen con una efectividad del 100%.
    Su limite es hasta 9.000.000.000.000.000 devido a la capacidad de las variables de 32 Bits, que luego de este limite no realizan los calculos correctos. El tiempo maximo en determinar si el numero es primo o no hasta este limite es de 32-33 segundos, donde si es compuesto indica el primo por el cual es divisible.

    ◘ GENERAR NUMEROS PRIMOS DIRECTAMENTE.
    ○ El anterior algoritmo, me llevo a analizar el comportamiento multiplo de los primos origen y los primos originados de cada uno y logicamente validaddos.
    • Encontre un Factor Multiplo con el que se descartan los candidatos que origino el primo origen.
    • Tambien encontre la Proporcion Multiple, donde un candidato del primo origen en cuestion, seria no primo, al ser multiplo o divisible entre uno de los demas primos origen y/o sus primos originados, de tal manera, aplicando esta proporcion multiple, se depuran los no primos, donde al final solo tendremos numeros primos validados y reales.

    ○ RESULTADOS.
    Indicando un primo origen, el algoritmo Genera Directamente Todos los Numeros Primos reales que correspondan al primo origen hasta el limite indicado. El proceso se efectua de la misma manera con los demas primos origen, obteniendo siempre los numeros primos reales que exista.

    ○ METODO del ALGORITMO.
    • El algoritmo, asi a lo bruto y sin depuralo, no tiene mas de 30 lineas de codigo, donde se realiza lo siguiente:

    1° PASO. Carga en un array los candidatos a ser primos del primo origen indicado, osea los primos originados.
    De estos se realiza una depuracion inicial aplicando el Factor Multiplo, donde ya sabemos cuales no son primos.

    2° PASO. Depuracion Final.
    Desde ya, en el array no hay candidatos que sean divisibles entre cualquier primo originado del primo origen indicado, por lo que resta verificar si serian divisibles por los demas primos origen.
    • Al encontrar un candidato divisible entre uno de los demas primos origen y sus primos originados, a los que llamaremos Primo Divisor (PD) se depuran en el array los no primos, aplicando el factor de Proporcion Multiple, lo cual nos permite indicar directamente que este candidato y los demas que indica la proporcion, no soy no seran primos, pues son multiplos del PD con certeza.
    • Luego de realizar esta depuracion, se pasa a verificar el siguiente candidato del array no depurado, ya que se debe respetar el orden de secuencia de primos origen como de sus primos originados.
    • Si el candidato no es multiplo entre los demas primos origen, se determina como un numero primo valido y real, perteneciente al grupo del primo origen indicado, del cual se buscan primos.
    • El proceso se acelera cada vez mas, pues se van depurando candidatos, al encontrarse un nuevo PD.

    ► Verifique los primos generados directamente con Primesieve, con el anterior algoritmo para determinar si es o no primo, mi base de datos de primos buscados, el algoritmo de busqueda desde un limite en un rango, que te mencione dias antes, en la pagina de Facoris
    http://wims.unice.fr/wims/wims.cgi
    que utiliza el metodo de Miller-Rabin con 10 bases aleatorias y Todos.. Todos son certificados Amigo Ignacio.

    ○ Me adelanto a decirte que estoy consciente de lo rustico del algoritmo; pero te comparto los nuevos avances y logros obtenidos, para refutar tu duda, con todo el respeto y el aprecio hacia tu persona, indicando que el conjunto de los Primos Origen tiene una cantidad finita y son pocos y que estoy en lo correcto en afirmar que se puede generar directamente todos los primos de cada primo origen. Aclarandote que por ahora y como te explique, genero con mi algoritmo, los primos de cada primo origen.

    ► Ahora puedo afirmar, que aplicando un arreglo al algoritmo, es posible generar todos los numeros primos ordenados secuencialmente y validados, de manera Directa, con solo la utilizacion de los Primos Origen, con un algoritmo corto, simple, sin realizar calculos complejos, aplicable en cualquier ordenador, con una complejidad algoritmica que de inicio es sub-lineal y puede llegar a ser sub-logaritmica… espero comprendas mi tal vez exagerada espectativa; pero este gran avance lo comparto contigo con gran satisfaccion, por haberme guiado y orientado mucho con tu amplio conocimiento y comprension.

    • Ireneses Says:

      1. Victor, o no escribo claro en castellano o no lees lo que escribo: las damas es un juego ya resuelto y se sabe que si ambos jugadores juegan perfecto termina en tablas. Sobre esto no hay discusión posible.Si no juegan perfecto es posible que ocurra lo que dices.

      En cuanto al ajedrez, no se sabe que pasaría si los dos jugasen perfecto. Dices que dos Chenard terminan en tablas. Pero este es un programa bastante flojo. Según he leído (http://www.chessforums.org/chess-software-recommended-websites/11539-chenard-chess-program.html) tiene un ELO (me imagino que el aplicable solo a programas informáticoa) inferior a 1800. Como sabes esto es muy poco: hay programas con un ELO superior a 3000. Por lo tanto Chenard no representa ni de lejos a un jugador perfecto: muchos humanos le superan.

      2. Robojuez, ok, aunque no comparto la demagogia sobre los dueños del mundo. Sobre la planilla he trabajado con Latam recientemente y este documento, que es propio de esta región, ha salido a colación. Por eso me sonaba🙂.

      3. Sobre tu investigación, gracias por aclarar la duda sobre la finitud del conjunto de primos origen. Me reservo la opinión hasta que no lea y comprenda tu propuesta. Pero recuerda que lo interesante sería poder generar directamente, uno tras otro, todos los primos y solo los primos de un rango dado (de números de un tamaño considerable; ahora mismo no recuerdo que tamaño se considera intratable hoy en día). Hace poco leía un paper en el que argumentaban que AKS no es práctico y sólo tiene interés teórico. Si lo recuperó colgaré el enlace aquí.

  20. Victor Luis Says:

    Holas Amigo Ignacio…

    Me agrada ver de nuevo al amigo y maestro que sorprende y lleva el liderazgo antes un pupilo como yo. Sabia que esos percanses y la agresion a tu espacio web, no ivan desestabilizar tu integridad, pues te considero detallista, cultivador de todo conocimiento que rodea tu interes con motivacion propia y autonoma… personas como tu he visto pocas.

    ○ Leo lo que escribes y dos veces como siempre; pero me disculpo por no expresarme claramente e ir acotando experiencias y pensamientos propios.
    Esta claro que las Damas es un juego resuelto y por eso es aburrido para mi.
    Mientras que en el Ajedrez se abren y cierran posibles jugadas de acuerdo a los movimientos que se hagan en el desarrollo de la partida.
    • Si bien es cierto que el Chenard de hoy tiene un ELO de bajo nivel, ese programa lo baje hace mucho tiempo… voy a buscarlo, subirlo a 4shared y darle el link para que lo descargues y verifiques si efectivamente es ese del que hablamos.
    • Sinceramente tu conocimiento en Ajedrez me intimida un poco y a la vez poder jugar una partida. Hace años jugaba en Kalgan.net donde habia jugadores de nivel medio y medio alto; lo bueno era el lenguaje y el comportamiento de las personas.

    ○ Sobre los Primos Origen que no se si es lo adecuado llamarlos asi y espero me puedas sugerir un nombre para indicar que de estos y con estos se comprende la organizacion y/o distribucion de todos los numeros primos.

    ◘ Lo interesante es que si se pueden generar uno tras otro todos los numeros primos. El orden como lo conocemos esta dado justamente por los primos origen, de ahi que generar los numeros base, candidatos a ser primos, es simple mediante un factor clave en varios otros procesos.
    ► La generacion directa asi como 2, 4, 6, 8, 10, … etc “es imposible” su organizacion no es regular; pero esta definida por la SMD (Secuencia de Multiplos Directos) que se aplica a todos los primos y como ya dije, esta SMD no es proporcional aritmeticamente ni exponencialmente; tal vez geometricamente, por eso encontraron relaciones con ecuacion graficas y formas geometricas, lo cual esta fuera de mis conocimientos; pero aun con esta relacion no determinaron esta secuencia que indica el orden, mientras que por mi parte afirmé y afirmo saberlo y es por eso que me es facil comprender a los numeros primos y poder realizar mis algoritmos que han logrado exelentes resultados. Otro matematicos creo harian maravillas con los conocimientos actuales alcanzados.
    ► Tambien recalcarte que si se puede generar todos los primos en un rango dado y desde un limite indicado. En la aplicacion que denomino BUSPRIM-5 desarrollada en VBAExcel definimos los parametros y realizamos la busqueda:

    Rango : 600
    L. Inicial: 999.000.000.000.000
    L. Final : 999.000.000.000.600
    TOTAL Primos: 16
    * Primos encontrados:
    999.000.000.000.043
    999.000.000.000.073
    999.000.000.000.143
    999.000.000.000.161
    999.000.000.000.187
    999.000.000.000.203
    999.000.000.000.257
    999.000.000.000.323
    999.000.000.000.371
    999.000.000.000.377
    999.000.000.000.403
    999.000.000.000.433
    999.000.000.000.473
    999.000.000.000.529
    999.000.000.000.539
    999.000.000.000.599

    ► Como te mencionaba, al pasar del limite de los 1.000 Billones, los resultados son impresisos, no porque haya falla en el algoritmo, sino por las variables que a partir de aqui, se redondean los ultimos digitos en 10, 100 y asi mientras se vaya incrementando mas el limite. Ejemplo:

    Rango: 600
    L. Inicial: 1.500.000.000.000.000
    L. Final: 1.500.000.000.000.600
    Total Primos: 19
    * Primos encontrados:
    1.500.000.000.000.010
    1.500.000.000.000.040
    1.500.000.000.000.040
    1.500.000.000.000.080
    1.500.000.000.000.110
    1.500.000.000.000.130
    1.500.000.000.000.160
    1.500.000.000.000.160
    1.500.000.000.000.180
    1.500.000.000.000.280
    1.500.000.000.000.340
    1.500.000.000.000.350
    1.500.000.000.000.400
    1.500.000.000.000.410
    1.500.000.000.000.490
    1.500.000.000.000.500
    1.500.000.000.000.500
    1.500.000.000.000.500
    1.500.000.000.000.520

    ○ El primer algoritmo de Busqueda que evaluamos el anterior año, actualmente implementado con las nuevas propiedades encontradas de los primos origen, no presenta este problema, esta estructurado para hacer busquedas hasta n primos, con la limitacion de que usa archivos para el manejo de Datos Secuencia (DS) que permiten depurar multiplos no primos.
    ○ Esta metodologia poco convencional pero que funciona, como lo comprobo mi hermano David que tambien estudio Estadistica, pienso aplicarlo en el desarrollo de BUSPRIM-6 para que por lo menos busque primos con 100 digitos o mas, como primer objetivo.
    • Antes de esto, y guiandome por las ideas que no se donde siguen saliendo y han permitido llegar a este limite; pienso completar el analisis del metodo de test de primalidad que te comente el año pasado, el cual carecia de eficacia por estar mal planteado la metodologia. En lo poco que analice, encontre como determinar si un numero dado de n digitos es multiplo hasta el primo 1.997 de manera directa.
    • Se que es infimo; pero como te dije solo hice un analisis inicial; el cual pretendo fusionar al nuevo algoritmo, de modo que el tiempo de proceso sea acorde a lo que se espera y como me enseñaste, no sea uno mas de los tantos que hay.

    ◘ Comentarte Amigo Ignacio, que iniciare a desarrollar la documentacion de mi investigacion y/o descubrimiento, para luego presentarlo al Ministerio de Educacion de mi pais. Desde luego que aplicare el formato adecuado como la terminologia del campo de las matematicas y sea comprensible, como bien me hiciste notar las deficiencias de mis anteriores publicaciones.

    • Ireneses Says:

      No es tanto Victor.🙂

      1. Si de verdad quieres ponerte a prueba en Ajedrez debes probar Rybka (y creo que ahora no es el más fuerte, Houdini le supera: http://en.wikipedia.org/wiki/Houdini_(chess)). Según indican en wikipedia te lo puedes descargar gratis: Rybka 2.2n2 (which is available as a free download) has been claimed to be rated at 3110 Elo[citation needed] on four CPUs, and Rybka 3 is supposedly about 100 Elo stronger than 2.2n2.. Aunque ambos rankings no son comparables diría que 3110 en máquinas ya es un nivel superhumano (http://en.wikipedia.org/wiki/Comparison_of_top_chess_players_throughout_history). Y sería aconsejable que cambiases de apellido…me parece que el tuyo no termina en OV.🙂

      2. Con respecto a tu resultado, ya te digo que lo tengo que leer en detalle. Comprendo que el problema al que te enfrentas, de implementación informática, te impide probar mayores rangos. Y te adelanto que los rangos que atacas seguramente son triviales para otros métodos y por lo tanto con estos resultados experimentales no vas a sorprender a nadie. No llegas ni siquiera al nivel de los primos titánicos (de al menos 1000 cifras).

      Aquí tienes una página web, actualizada hoy mismo, dónde comentan sobre los primos más grandes conocidos: http://primes.utm.edu/largest.html. Te sugiero la leas completamente (por ejemplo de gran interés es esta otra a la que se llega a través de un enlace: http://primes.utm.edu/notes/by_year.html#3). Muchos de los más grandes son un tipo de primos específicos (Mersenne, primorial, factorial, Sophie Germain); esto es un poco hacer trampas. Este tipo de primos son bastante poco frecuentes: http://oeis.org/A227537/internal, pero como tienen un forma especial conocida es más fácil encontrarlos.

      En la página citada comentan:

      When will we have a one billion digit prime? Let’s look more closely at the recent data: Using the regression line (on the graph) we might guess that someone will discover:

      a 100,000,000 digit prime by late 2015, and
      a 1,000,000,000 digit prime by 2024.
      However, extrapolating with a regression line is of questionable value and the recent records seem to be coming at a far slower rate. On the other hand, eventually there could be a major technological or social changes.

      We update this page after each new record prime. So what of our previous predictions? Before a 38th Mersenne was found in June 1999, we had predicted a million digit prime by late January 1999–so our estimate was five months early. At that same time we also predicted a ten-million digit prime by 2009. As the more recent primes have been found our estimate for finding a 10 million digit prime has been slowly decreasing and finding such a prime in 2006 seemed very likely–but it took until August 2008. So what of our estimate of a billion digit prime? Surely 2024 is several years too early. (See our page: Where is the Next Mersenne? for more mathematical heuristics.)

      Creo que podrás traducirlo.

      Por lo tanto, si quieres sorprender a la comunidad de expertos (repito que yo no lo soy, pero diría que es la única manera de que te hagan caso🙂 ; y sinceramente ni siquiera si consigues esto tienes garantizado que te hagan caso: suelen ser comunidades muy cerradas, en general) yo me concentraría en implementar un programa capaz de encontrar primos en algún rango, por ejemplo, entre 1.000.000.000 digitos y 1000.000.000.000 dígitos. Y evitaría que fuesen del tipo Mersenne etc…, es decir tienen que ser primos cualquiera. Ojo, hablamos de almenos 1.000.000.000 dígitos…Creo que para este reto, aparte de experto en algoritmos para buscar primos, se debe de ser un gran experto en programación, para evitar los problemas a los que te estás enfrentando.

      Por otra parte diría que si encontrases mañana mismo primos en este rango, es posible que tuvieses problemas para que alguien te creyese de primeras: no se cuan rápido corren los algoritmos actuales de primalidad (aunque sean probabilísticos) en este rango. Entiendo que AKS ya sería prohibitivo. Sobre esto he visto uno de los últimos grandes primos descubiertos (de tipo Mersenne), uno de 17.425.570 dígitos, les llevó a sus descubridores 39 días confirmar en un PC que era primo (luego otros grupos lo confirmaron independientemente en menos tiempo: tardaron entre 4 y 7 días). Puedes ver este (http://www.slate.com/blogs/future_tense/2013/02/05/curtis_cooper_has_found_the_new_largest_prime_number.html) y este otro (http://en.wikipedia.org/wiki/Curtis_Cooper_(mathematician)) enlace. Y más técnico este otro: http://mersenne.org/various/57885161.htm. De este último extracto:

      To prove there were no errors in the prime discovery process, the new prime was independently verified using different programs running on different hardware. Serge Batalov ran Ernst Mayer’s MLucas software on a 32-core server in 6 days (resource donated by Novartis[2] IT group) to verify the new prime. Jerry Hallett verified the prime using the CUDALucas software running on a NVidia GPU in 3.6 days. Finally, Dr. Jeff Gilchrist verified the find using the GIMPS software on an Intel i7 CPU in 4.5 days and the CUDALucas program on a NVidia GTX 560 Ti in 7.7 days.
      M-Lucas y CUDALucas ambos implementa el test Lucas-Lehmer, que es un test específico para determinar la primalidad de un número de Mersenne. Su complejidad temporal es O(n^2 log n log log n) (http://es.wikipedia.org/wiki/Test_de_Lucas-Lehmer). Aunque tu numero no sería de Mersenne, para obtener una aproximación, puedes calcular lo que tardaría este test para un número de 1 billón de dígitos en un PC de un procesador (que es lo que entiendo tu utilizarías antes de ofrecer tu descubrimiento a la comunidad; puedo imaginar tu impaciencia, si tal evento se da, pensando que quizás haya alguien más empezando a testear justo en el mismo momento que tu un número con el mismo número de dígitos, pero en un doble núcleo :-)). Si no quieres calcularlo en este enlace lo hacen por ti: http://mersennewiki.org/index.php/Operation_Billion_Digits
      Extracto.
      Operation Billion Digits is a whimsical project that is searching for a Billion Digit Mersenne prime. There isn’t hope of really finding such a prime with today’s technology and algorithms. A Lucas-Lehmer primality test is estimated to require 852 years.

      Más sobre este proyecto en este otro enlace: http://home.earthlink.net/~elevensmooth/ElevenFAQ.html . Y sobre todo en este foro dónde comentan con todo detalle sobre la complejidad del test LL: http://www.mersenneforum.org/showthread.php?t=2235 . Muy recomendable. Lamento que todos los enlaces sean en inglés, pero es lo que hay.

      Realmente parece que atacar el objetivo de 1 billón es demasiado ambicioso, incluso limitándose a primos de Mersenne. Y tampoco 100 millones parece fácil…

      Suerte Víctor !

      Actualización, mismo día. Ya se que tu interés no es económico, sino más bien histórico: redescubrir el método de los Incas (quizás tu método posicional se inspire en los quipus…🙂 ), pero quizás te interese saber que hay premio para aquellos que descubran primos de 100.000.000 de dígitos y de un billón de digitos: https://www.eff.org/press/archives/2009/10/14-0.

      Sobre el ajedrez he visto que Rybka ha sido polémico ya que copiaron el código de otra máquina. Personalmente me tomo muy en serio los derechos de propiedad intelectual y por lo tanto no debí haberlo citado. Fin actualización.

  21. Victor Luis Says:

    Hola Ignacio…

    ○ Sobre Ajedrez veo que tienes amplio conocimiento, caracteristica tuya que era de esperarse, por lo que creo perderia en la primeras partidas ante ti.
    * Estoy buscando el programa Houdini ya que el que baje requiere muchos MB de memoria en disco y no lo tengo.

    ○ Sobre los PRIMOS ORIGEN encontre una publicacion de un profesor de universidad de Mexico, el cual explica el analisis que hace sobre la organizacion de los primos desde la criba de Eratostenes.
    Lo que me llamo la atencion es que identifica a mis primos origen y los denomina como elementos primarios de los que formarian los secundarios y asi, con la caracteristica de presentar una mayor condensacion de numeros primos y pocos numeros compuestos.
    Tambien identifica una secuencia que es mi SMD (secuencia de multiplos directos) indicando su presencia en los primos junto a los no primos en la base de numeros generados.

    ○ Le he escrito a su correo y me indica que no es matematico profesional. Yo pensaba contar con el para el desarrollo de la documentacion de mis hallazgos; pero almenos se que hay un analisis que demuestra matematicamente de donde y porque serian estos los primos origen.
    • Veo que es dificil comprender mi metodo, ya que todos se basan en determinar primos en una base de numeros segun su orden y posicion natural.
    • Al generar la base con los primos origen, este orden desaparece y a mi modo de ver, entramos al orden y/o mundo de los numeros primos.
    • La primera vez no encontre nada logico para comprender este orden, por lo que lo deje ese analisis, como te comente al inicio. Volviendo a revisar el analisis, recien comprendi este orden, basado en la secuencia SMD, luego determine sus DS (Datos Secuencia) que indican su posicion en la base generada, que es propio de cada primo; pero despues lo podia calcular desde su primo origen, donde encontre un metodo de calculo directo que me indica a que primo origen pertenece un numero primo.
    • Con todo esto mejore el algoritmo de busqueda y cree el que posiciona a un limite mas grande y buscar desde ahi, como te mencione que llegue a los 21 trillones.
    ► Ambos algoritmos pueden buscar hasta n primos, donde no es problema la limitacion de las variables. La desventaja es que usan archivos para los DS y esto ocupa espacio, como tambien se va haciendo lento el proceso.
    • Ahi encontre otras propiedades, haciendo calculos directos y verificando los resultados segun a que Grupo de primo origen pertenece el primo.
    ► Sabiendo mas de los primos origen, hice el algoritmo para buscar desde un Limite en un Rango indicados, encontrando otro Factor para depurar directamente los no primos de cada grupo origen. Por esto te dije que podia generar directamente todos los numeros primos validos; pero de cada grupo origen. Luego haciendo un arreglo se generaban todos los primos en el orden que lo conocemos.

    ○ Te menciono esto, para que comprendas que es diferente como ven todos a los numeros primos y no los llegan a entender, mientras que para mi, con mis conocimientos de matematicas de colegio, pude desarrollar algoritmos simples, de pocas lineas de codigo y eficientes para buscar primos como para determinar si un numero dado es primo o no, con solo los primos origen.
    • Me diras Amigo Ignacio, que otro metodo, aparte del de Eratostenes, no necesita de una base de numeros primos verificados o que solo use menos de 10 primos como unica base para la ejecucion de su algoritmo.

    ○ Sobre el metodo de los Inkas que me comento mi hermano David, se habia tratado de una “piramide truncada” relacionada con la puerta del sol, con el cual se generarian numeros primos aplicando una organizacion en 4 dimensiones, segun explican sus descubridores, los que habrian sido llevados a EE.UU. creando un proyecto para completar el algoritmo, ya que tiene su eficacia hasta cierto limite.
    » Pareciera que los Anunnakis los dejaron ahi y deben entender su criptografia…

    ◘ Segun me enseñaste, estaria en la categoria de algoritmos de Tamiz para buscar hasta n primos, donde mi algoritmo hace eso.
    Ahora mencionas primos de 10^9 a 10^12 digitos. Inicialmente mi meta era llegar a obtener primos hasta 10^9 digitos, mas ahora se que con los algoritmos de tamiz eso llevaria años.
    • No era mi objetivo, pues para eso necesitaria un algoritmo para Test de Primalidad, donde las ecuaciones matematicas estan fuera de mi comprension; pero como lo planteas tan interesante o casi imposible para mi, analizare unos datos de ideas que surgieron y si compruebo su eficiencia te mostrare primos con 1.000 digitos como limite inicial. De no lograr esto, aceptaria mi imposibilidad de enfrentar este reto.
    • La idea me surgio cuando mencionas que Mersene se salta, dejando espacios donde habria primos no encontrados, por lo que haciendo lo mismo, buscaria primos en un solo grupo origen, hasta tener uno de mil digitos.

    ○ Gracias por los temas recomendados, aunque estan en ingles, el traductor los pasa a español y como siempre amplias mi conocimiento y no dejas de sorpenderme con lo mucho que sabes.

  22. Victor Luis Says:

    Holas Amigo Ignacio…

    Con la novedad que ya tengo la base de mi algoritmo para realizar el “Test de Primalidad”, como es mi mala costumbre lo hice en VBA Excel, antes de que se me vayan las ideas de la cabeza, que aunque dudando al inicio si funcionaria, logré desarrollar el Método Clave con el que determina si un numero es primo o no de manera Directa, simples calculos y un rendimiento mas que suficiente para este primer paso.
    ► Te muestro algunos primos encontrados de 24 a 99 digitos:

    3000000000000000000000017
    3000000000000000000000009000007
    3000000000000000000000009000011
    3000000000000000000000000000000000000000024000643
    3000000000000000000000000000000000000000024000661
    300000000000000000000000000000000000000000000000039000624000003300397
    450000000000000000000000000000000000000000000000000000000000000000057000624000003300463
    450000000000000000000000000000000000000000000000000000000000000000057000624000003300469
    300900000900000600300300900300300000300900000000000300600000900300600600300600000000300307
    300900000900000600300300900300300000300900000000000300600000900300600600300600000000300329
    300900000900000600300300900300300000300900000000000300600000900300600600300600000000300331
    300900000900000600300300900300300000300900000000000300600000900300600600300600000000300337

    300900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300451
    300900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300467
    510900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300463
    510900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300551
    510900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300601
    510900000900000600300300900300300000300000300300900000000000300600000900300600600300600000000300607

    ►Estos son de 150 digitos:
    510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540667
    510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540739
    510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749

    ◘ El Procedimiento es como te habia indicado, se pone en un cuadro de texto un numero de cualquier numero de digitos; bueno por ahora esta configurado hasta 1.000 digitos. Luego inicia el bucle para determinar si es multiplo de por algun primo, que de no serlo hasta cierto limite, este se toma como numero primo.
    • Lo hace asi de facil y directo, como si estuviera calculando con todo el monton de numeros (digitos) hasta encontrar un primo divisor que le calce, caso contrario pone en la hoja de Excel el nuevo primo.
    • El Código es corto, donde el primer algoritmo utiliza numeros primos de archivo ya verificados. Hice otro algoritmo que realiza el test utilizando solo los Primos Origen y nada de archivos,donde el resultado es el mismo; pero se hace lento al testear primos de mas de 100 digitos; mientras que hasta 50 digitos, es mas rápido que el anterior algoritmo.

    ○ En al analisis previo que hice, observe que por lo general un numero compuesto es multiplo de 2 y hasta 3 primos ubicados al inicio de la secuencia y algunos un tanto alejados; pero no mucho. Pienso que debe haber una relacion que dispone este comportamiento, ya sea por el primo origen al que pertenece a uno de los dos grupos en que se dividen, su posicion en la secuencia base o algo no descubierto hasta ahora, por lo que aplicando esto, el test de primalidad sea mas rapido y casi directo, especialmente cuando se determine numeros con mas de 100.000 digitos.

    • Veamos un ejemplo:
    [Lista-1]
    53
    153
    1.053
    10.053
    100.053
    1.000.053
    10.000.053
    100.000.053
    1.000.000.053
    10.000.000.053
    ► Esta lista aunque parecida a la que sigue, determinando el primo origen de estos vemos que solo el 53 se origina de un grupo origen, por lo que es “imposible” que los otros de la lista puedan ser primos, de modo que no deben ser evaludos y/o testeados.

    [Lista-2]
    53
    1.153
    11.053
    110.053
    1.100.053
    11.000.053
    110.000.053
    1.100.000.053
    11.000.000.053
    110.000.000.053
    ► En esta segunda lista, el 53 que es primo corresponde a un grupo origen y los demas pertenecen a otro, donde alguno puede ser primo, como se puede demostrar, el 11.000.053 es primo.

    ○ Este es un calculo básico y simple, utilizado en la mayoria de los procesos, especialmente para determinar posiciones y obtener DS desde su primo origen.

  23. Victor Luis Says:

    Holas Amigo Ignacio

    Creo que ya hice mi primera tarea, llegar al limite del objetivo inicial sobre el test de primalidad.
    Disculpa… me adelante un poco y por la emocion, veo que puse muchos primos y espero no te molestes.

    • Este es un primo de 1.020 digitos:
    510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810510030750600930090420810312519180337510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540570600300930090420810090030300960540749510030750600930090420810510030750600930090420810312519180343

    ◘ OBSERVACIONES:
    • Al pasar los 1.000 digitos, el tiempo de la determinacion aumento considerablemente tardando un poco mas de 30 minutos y esto se debia al uso de primos de archivo para determinar si es divisor del numero en evaluacion.
    • Ampliando el limite proporcional de particion, este tiempo se redujo a unos 20-22 minutos, lo cual me siguió pareciendo demasiado.
    • Implemente el codigo del segundo algoritmo que te mencioné, el cual usa solo primos origen como primo divisor.
    Para esto realicé un breve analisis para depurar los multiplos no primos dentro de cada Grupo Origen. Indicarte que la 1° Depuracion se hace con los propios primos generados dentro de su grupo y la 2° Depuracion con solo los primos origen de base que si o si tendran por lo menos un multiplo en cada grupo origen. El tiempo en depurar y obtener cerca de 3 millones de primos divisores útiles es de un poco mas de 1 segundo.
    • El no depurar totalmente los primos de cada grupo origen, no afecta en la determinacion, puesto que el numero sera divisible entre el primo divisor y su primo multiplo no depurado. En lo que afecta es en el tiempo, pues hara los calculos para ver si el numero es multiplo de este primo multiplo no depurado.

    NOTA ACLARATORIA. Al decir “Primo Multiplo” me refiero a aquellos primos generados desde un primo origen, conformando el Grupo Origen, donde los primeros tendran multiplos en el grupo, por eso los llamo primos multiplos.

    • Luego de esto, en el grupo habra no primos, que son multiplos de primos de los otros grupos. Este analisis no lo he terminado; pero vi que en cada grupo origen se desarrolla el mismo comportamiento, por eso es facil y directo la 1° Depuracion, mientras que en la 2° encontre que hay una relacion particular entre los primos de un grupo con los demas grupos, donde esta relacion puede ser de afinidad o de rechazo.

    ◘ EVALUACION del 2° ALGORITMO.
    • El Tiempo es satisfactorio, realiza la determinacion en menos de 15 minutos cuando encuentra numeros digitos que son primos y si no hubiera ninguno, tarda cerca de 3 minutos.
    • Aclarandote que en cada ejecucion, realiza la determinacion de primalidad de 10 numeros digitos, ya que hacerlo uno por era poco práctico, mas al ampliar la cantidad de digitos.

    ◘ 2° OBJETIVO.
    • La nueva meta sera llegar a 100.000 digitos, por ahora voy en los 10.000 digitos, donde para acelerarlo ampliare la proporcion de particion como lo hice con el primer algoritmo.
    • Al llegar a este limite, creo que deberé realizar un 3° algoritmo para determinar la divisibilidad en paralelo de los numeros digitos, como tambien particionar el numero en 2 o mas bloques de digitos y evaluarlos al mismo tiempo, tratandolos como uno solo.

    ○ Por ultimo, comentarte que la pagina de factoris: http://wims.unice.fr/wims/wims.cgi
    no factoriza los primos desde 500 digitos y Primesieve solo llega a los 18.8 trillones que son pocos digitos.

    ► Una Consulta amigo. ¿Cómo determinar la raíz cuadrada de numeros con miles de digitos? o hasta que primo divisor utilizar en la determinacion de primalidad?

  24. Victor Luis Says:

    Hola mi Amigo Ignacio…

    Con la novedad que ya pasé los 100.000 dígitos y continuando tuve varias dificultades para superar los 500.000 digitos.
    • Uno porque el tiempo de proceso de la determinacion se alargo demasiado, por la recursividad de los bucles, pues aumentaron los digitos y con estos las particiones.
    • Otro porque el .Value de la caja de texto no contenia los digitos del numero a determinar su primalidad y peor mostrarlo en las celdas de Excel.
    ○ Como te habia adelanto, hice el tercer algoritmo ampliando la proporcion de particion, usando cajas de texto para concatenar el numero y exportando a archivo secuencial y/o binario los numeros primos que pasaron la determinacion, donde al revisarlos eran correctos y tenian los digitos de base indicados.

    ►De esta manera pase el anterior limite llegando al 1.000.000 de digitos y asi hasta los 5 millones. Pasando a determinar 10.000.000 digitos, el proceso se volvio lento, lo cual supongo se debe a la recursividad de los bucles, donde ampliar la proporcion no lo veo conveniente, esto para mantener la eficiencia de los calculos dentro del limite de las variables double.

    ○ En este punto he pensado simplificar el proceso, pues como bien lo decias, Merssene usa el truco de determinar primos de su eleccion, creo esos de 2^p-1, en mi caso puedo estructurar el numero, primero para que corresponda a algun primo origen, que como ya te mencione, si no es asi, no es posible que lo sea y segundo, configurar las secuencias para que correspondan correctamente a la generacion de primos desde primos origen y no solo tomar un numero con digitos aleatorios.
    • Teniendo un numero con digitos configurados adecuadamente, determinaria un limite confiable para luego replicar el mismo y realizar calculos paralelos, lo cual aceleraria el proceso y el uso de recursos de memoria RAM. Lo ideal seria llegar a realizar 2 bucles cuando mucho, obteniendo un resultado proporcional que seria el mismo al realizar n bucles. Es como la secuencia de ADN que sabemos las combinaciones posibles de G_C_A_T donde la recombinacion de estas uniones diversifican la informacion, sucediendo algo parecido con los primos divisores que tienen una recombinacion especifica, donde si es proporcional al numero que se determina su primalidad, este no seria primo.
    • Tambien hice o mejor dicho complete uno de los varios analisis que deje a medias por continuar la determinacion de primalidad.
    Comprendi los limites de multiplos no primos que se generan desde los primos origen, quienes tienen mas, desde donde y hasta que limite. Hay una relacion ocuta entre estos, que no llego a descubrir; pero aplicando estos limites, reduje el tiempo a 1/3 parte de lo que lo hacia y con la misma precision.

    ◘ Veo que es necesario completar los otros analisis que surgen de ideas que se me vienen, para desarrollar el 4° algoritmo, donde mi objetivo sera llegar a los 100 millones de digitos y aplique una determinacion extendida para que el numero primo encontrado no sea refutado y sea valido como tal.
    ☼ Si hay mas novedades te las ire comentando Amigo mio.

    • Ireneses Says:

      Hola Víctor,

      Confirmo recepción de tus últimos comentarios. Estoy concentrado con otros asuntos y no me puedo despistar. Si puedo esta tarde intentaré averiguar cuan complicado se considera conseguir primos cualesquiera de 5.000.000 y 10.000.000 de dígitos. Sería bueno que informases sobre cuanto has tardado en encontrar los primos de 5.000.000 millones de dígitos y mostrases alguno de los que has obtenido (si quieres aquí, aunque igual se revientan los límites del blog: en una página típica de word, el programa de tratamiento de textos cabe un número de 3500 dígitos; uno de 5.000.000 necesitaría casi 1500 páginas de estas; uno de 100.000.000 casi 30.000: esta ya es más que el Quijote y toda la “literatura” Inca juntos🙂;

      [Nota al margen para los lectores : Los Incas no tenían propiamente escritura, pero se considera como tal la literatura generada durante el periodo colonial, que transcribía las tradiciones orales o contenido relacionado con el periodo anterior, como la citada en la siguiente relación: LITERATURA INCA:

      Desde el siglo XVI y XVII poemas, narraciones y leyendas Incas fueron traducidas y transcritas por cronistas europeos y posteriormente por Incas evangelizados y mestizos.

      – Cristóbal de Molina escribe “Fábulas y ritos de los Incas” en 1573
      – Santa Cruz Pachacuti (indio evangelizado) escribió en 1613 “Relación de antigüedades de este reyno del Pirú” en el que colecta narraciones y poemas en quechua y describe la religión y filosofía inca.
      – Inca Garcilaso de la Vega (1539-1616) Tal vez el autor más famoso, cuya obra más importante sería “Comentarios Reales de los Incas”.
      – Felipe Guamán Poma de Ayala, cronista indio quien escribe “Nueva crónica y buen gobierno”, una carta dirigida al rey en la que le relata la pésima situación de los indígenas, apoyándose en abundantes dibujos, y le pide un cambio en el gobierno colonial para salvar al pueblo de enfermedades y explotación
      . No sé si están todos…). Fin de la nota al margen].

      De cualquier manera, dado tu interés en todo esto te sugiero contactes con el equipo que identificó el primo de unos 17.000.000 millones de dígitos, según te informé en mi último comentario. Lo peor que te puede pasar es que no te contesten. Si te contestan y el contacto es bueno, ellos podrán evaluar bien tu resultado. Lo problemático es que para que te evaluen tendrás que dar más información de la que a lo mejor estás dispuesto a dar. Ten en cuenta esto…

      saludos
      Ignacio

      Actualización. Víctor, aquí un pdf que creo que es clave para responder al interrogante de si primos de 5 millones de dígitos son interesantes:

      http://primes.utm.edu/primes/lists/all.pdf

      contiene (con descripciones sucintas, claro) los 5000 primos con mayor número de dígitos conocidos.

      Está actualizada y por lo tanto incluye, en la posición nº 1 el primo con 17425170 dígitos. La lista se presenta en orden descendente en número de dígitos. Para cada primo que aparece en la lista, comentan sobre el año de descubrimiento y, muy importante, también aparece el descubridor (le asignan un código y al final de la lista hay una lista de códigos). Varios datos relevantes para tu investigación:
      –el primo nº 12 de la lista se descubrió en 2014 (el año corriente) y tiene 3259959 dígitos. Es de la forma Fermat Generalizado (un tipo especial, como los de Mersenne, que posiblemente tenga un tipo especial de test).
      –El primer primo no especial (es decir, cualquiera, que no tiene ninguna forma como Mersenne o FG) que aparece en la lista es 16 con entre 2 y 3 millones de dígitos.
      –El autor de la lista es Cris K. Caldwell sobre cuya página web ya te he comentado. Este investigador da la bienvenida a nuevos primos de gran tamaño, para añadirlos a su lista. En el PDF puedes encontrar dónde enviar tus resultados (
      http://primes.utm.edu/bios/submission.php). Por lo tanto si de verdad tienes algún primo que no esté en
      esta lista (por ejemplo de 5 millones de dígitos o más) te sugiero la envíes a este investigador. No olvides antes realizar los tests de primalidad correspondientes y si es posible que lo hagan otros investigadores independientemente de ti. Deberás de enviar conjuntamente el resultado de estos tests con los números en si (en forma sucinta si puede ser). Como afirmas que tu algoritmo es capaz de generar primos en un rango, uno tras otro de manera rápida, sugiero que aportes una lista larga de primos en sucesión, entre un rango con un número de dígitos elevado (por ejemplo entre 5 millones y 7 millones). Con respecto al inglés me dijiste que tienes amigos que te pueden ayudar con ello….
      –el nº 5000 tiene 333452 dígitos y fue descubierto en 2013. Luego aparecen más que son primos más pequeños, con menor número de dígitos pero selectos …
      –hasta números de unos 625895 dígitos (más o menos el 300 de la lista, empezando por abajo) la mayoría de los que aparecen son primos cualquiera. A partir de este número de dígitos ya empiezan a ser muchos más frecuentes en la lista los primos de formas determinadas.
      –la mayoría de los números de la lista son de 2013
      –si tras todo esto (es decir encontrar primos de 5 millones de dígitos o más, pasarles el test de primalidad, encontrar una sucesión larga de primso de más de 5 millones de dígitos y pasarles el test de primalidad, enviarlos a Caldwell y que los acepte en la lista), contactas con alguno de estos grupos y quieren colaborar contigo para obtener el primo de 100 millones o de 1 billón, que como sabes tienen recompensa económica, deberéis acordar antes el reparto del botín. Te sugiero no cedas más del 10%. Lo que ellos aportan que sería poder computacional lo pueden aportar otros.😉 .Y según conversaciones anteriores ya veo que conoces los temas legales. Pero a riesgo de repetir lo que seguramente ya sabes, si se diesen todas las eventualidades señaladas anteriormente, no está de más comentar que: todo por escrito, el acuerdo de colaboración se debe de reflejar en un convenio dónde todos los compromisos se especifiquen claramente, tu debes de liderar el proyecto y sobre todo controlar el flujo de dinero (no hay que ceder en esto; pero una vez conseguido, hay que honrar los compromisos económicos asumidos con los demás, que es de ley). Por otra parte si como digo lo que afirmas se confirmase, ten presente que el interés económico podría ir más allá de los 150.000 usd o 250.000 usd del premio. Por lo tanto se prudente siempre a la hora de compartir información.

      –y aquí (http://www.primegrid.com/forum_thread.php?id=4057) puedes encontrar un foro en el que comentan sobre temas relacionados.

      –puedes encontrar otro “thread” similar en este enlace: http://www.wrongplanet.net/postxf189781-0-15.html&sid=bef110b7781dcad7f362e03f35de0a0b . Es un caso similar al tuyo: un aficionado que afirma que ha descubierto un método rápido para identificar primos grandes.

      –creo que ya te he hablado de este enlace. http://terrytao.files.wordpress.com/2009/07/primes1.pdf . Es una presentación de T.Tao uno de los grandes de la matemática de nuestros días. Extractos:
      Euclid’s theorem ( 300 BCE): There are infinitely many
      primes…In particular, given any k, there exists a prime with at least k digits…But there is no known quick and deterministic way to locate such a prime! (Here, “quick” means “computable in a time
      which is polynomial in k”.)…In particular, there is no known (deterministic) formula that can quickly generate large numbers that are guaranteed to be prime. Ojo, sí existen métodos probabilistas para identificar números primos grandes.

      Suerte !

  25. Victor Luis Says:

    Hola Ignacio

    Voy a revisar los enlaces y Gracias de antemano; pero creo que falta un poco mas antes de planear sociedades y premios.

    ○ Mi algoritmo encontro 2 primos de 10.000.800 digitos en un tiempo de 04:53:19 y me parece mucho. Hice una mejora disminuyendo la complejidad al reducir el numero de bucles.
    • Haciendo una prueba para determinar primo de 100.008 digitos, antes tardaba 0:02:21 y ahora 0:00:34
    • Con esta mejora estoy probando determinar 20.000.000 de digitos y segun el tiempo que haga pasare a los 50 y 100 millones.

    ○ Para aclararte,.. como recien llevo una semana con esto de la Primalidad, desarrolle un metodo directo, del cual estoy probando su rendimiento, es decir en que tiempo determina un grupo de una determinada cantidad de digitos. Esto fui comentandotelo en cada avance del proceso.
    • La efectividad de numeros primos con estas grandes cantidades de digitos no es del 100%. Por suerte el calculo principal de mi metodo se adecua a las mejoras que voy haciendo con la finalidad de determinar 100 millones de digitos en menos de una hora, a eso debo llegar como limite máximo y logicamente dbe ser menos.
    • Luego de tener el algoritmo afinado, lo pasare a Visual Basic, pues por ahora sigo haciendolo en VBA Excel, lo que apoyara a mi rendimiento, para acelerar el proceso.

    ○ Para la Efectividad, es decir que sean primos irrefutables, aplicando el metodo actual necesitaria generar desde los primos origen, una gran cantidad de primos divisores, lo que no me parece eficiente. Por eso te preguntaba como saben que un primo de millones de digitos es primo, hasta que limite realizar la primalidad o se aplica que es hasta la raiz cuadrada del numero? De igual manera saberlo y realizarlo llevaria demasiado tiempo.
    • Lo que pienso hacer es reducir a lo minimo este limite, pues como te fui mencionando, en el analisis que hice de la generacion de primos por grupos de origen, hay una secuencia que repite cada primo, que determina todos los posibles multiplos que tubiera en los grupos origen.
    • Expandiendo esta secuencia al limite del numero con cien millones de digitos a determinar, se depurarian automaticamente los multiplos, quedando los que en un 99.9% serian primos.
    • Por otra parte, tambien se puede reducir en gran medida los primos divisores a usar en la determinacion de primalidad, ya que en mi analisis encontre que un primo tiene como maximo un 15% de multiplos en cada grupo origen y como minimo un 3%, esto para el ultimo grupo origen.
    ►Si me has comprendido, de inicio el numero con n digitos a determinar, esta configurado para que sis o si pertenezca a un grupo origen, lo que cuatruplica sus posibilidades. Luego determino si es multiplo segun la secuencia expandida de los primos de cada grupo origen, donde si no es depurado, este seria practicamente primo; pero para tener toda la certeza se lo determina con un numero limitado de primos origen, puesto que los ultimos primos generados, son una proporcion de los primeros primos origen.
    Ampliando esto para que me entiendas, si un primo origen P1 tiene su multiplo en tal posicion, desde ahi se sabe los demas multiplos que tendra (esto se aplica en cualquier grupo origen) luego, a partir de esta primera posicion, se calcula donde estara el primer multiplo del siguiente primo originado, donde de igual manera se sabe sus multiplos y asi determina si alguna posicion corresponde con el numero que estamos determinando.
    Al no ser multiplo, se procede de la misma manera con los demas primos origen, donde si ninguno coincide con el numero, este seria numero primo 99.9% (para mi 100%)
    • Es mi metodo directo, lo he probado determinando hasta un limite de 250.000 donde Todos los no depurados eran primos y coinciden exactamente tanto en valor como posicion con primos verificados de mis archivos.

    ○ Respecto a publicar primos determinados de 5 millones, si me confirmas que lo haga lo hare o indicame donde o como enviartelo, ya que no quiero saturar la pagina y especialmente esto le quita lo bueno del contenido al solo ver un monton de digitos. Si me indicas antes un limite como mencionabas de 5 a 7 millones de digitos, subiria los encontrados; pero me parece demasiado, pues entre estos limites hay muchos, mejor seria indicar a partir de un limite adelante y un numero de primos a encontrar desde ahi.

    ○ Lo de asociarme con otros no lo veo necesario y por ahora no pienso en ello,… “no hay que saborear el pan sin antes encender el horno” ademas, hasta donde he visto, creo ser el unico que aplica los primos origen tanto en algoritmo de Tamiz como en test de Primalidad, es como hablar otro idioma, por lo que si no les enseño, no habria comunicacion ni cooperacion.
    • Como me indicaste, minimamente mi algoritmo debe ser capaz de determinar primos de 100 a 1.000 millones de digitos para que la comunidad matematica tome interes en mis primos origen y eso es lo que pretendo, ante tu sugerencia.

    • Ireneses Says:

      Hola Victor,

      1. Lo de asociarte o no es por supuesto decisión tuya. Yo solo te iformaba de como lo haría en caso de que finalmente decidas ir por esa vía. Tras mis explicaciones verás que a lo mejor no te queda más remedio… ¡¡ Ojo !! Sugiero no envies tus supuestos primos, en forma sucintao en cualquier otra forma, por este medio.

      2. Si te soy sincero, con la información de que dispongo y el tiempo que le he dedicado no tengo 100% como funciona tu método pero me puedo hacer una idea. Seleccionas un número de n dígitos cualquiera, llamemosle A, y vas aplicando una criba partiendo de lo que llamas los primos origen, que como me dijiste son una lista de cardinalidad finita. Empiezas por el primer primo origen (con el cual generas otros números) y si A no es “múltiplo” de éste (no de los por él generados), sigues con el segundo primo origen así hasta agotar la lista finita de primos origen. Si A no es “múltiplo” de ningunos de ellos entonces concluyes que es primo con una probabilidad de 99,9%. Si esto es así lo que tienes es un método de generación de primos de tipo criba optimizado (las cribas conocidas como Atkin funcionan bien pero solo paraprimos pequeños, luego empiezan a ser más lentas que otros métodos) pero probabilístico (es decir garantizas primalidad al 99,9%.

      3. Si con este método ya has encontrado primos de 10.000.800 dígitos decimales, 100% garantizado y en 4 horas, diría que esto ya es interesante y digno de enviar al profesor que mantiene la lista de primos grandes, Caldwell. Lo mismo para los de menor tamaño como los de 5 millones de dígitos decimales. ¡¡ Ojo !! tiene que estar garantizado 100% que sean primos. Es decir les tienes que haber aplicado un test de primalidad determinista (no el tuyo sino uno de los comunmente aceptados) y el resultado del test te tiene que haber garantizado que son primos. Entonces, por tus preguntas, lo que pienso es que has identificado una serie de números de 10 millones de dígitos y de otros tamaños (5 millones), que según tu método son supuestamente primos pero que no les has pasado el test de primalidad independiente, ni determinista (por ejemplo curvas elípticas) ni probabilista (por ejemplo Rabin Miller). Todo esto nos lleva a los tests de primalidad que trato en el punto siguiente.

      4. Hay varios métodos para determinar si un número es primo o no lo es. Todos se pueden clasificar en deterministas o probabilistas. Obviamente los probabilistas son más rápidos pero no te ofrecen la garantía 100% de que sean primos. Esto quiere decir que hay números que tras pasarles el test probabilista, este determina que es primo (más bien que no hay ninguna razón para pensar que no lo sea) cuando en realidad no lo es (a estos números de les llama pseudoprimos y tienen interés también). Los deterministas si te garantizan 100% que el número es primo, pero son más lentos. Por ejemplo según indican en este enlace (http://mathworld.wolfram.com/PrimalityTest.html) The state of the art in deterministic primality testing for arbitrary numbers is elliptic curve primality proving. As of Feb. 2009, the largest number certified by the program PRIMO (7993 decimal digits) took eight months on a 2-GHz processor. El enlace es de una página de la empresa Mathematica que viven de vender software de matemáticas genérico en el cual están incluidos tests de primalidad y por lo tanto saben de lo que hablan. Y lo que dicen es que en 2009 el método determinista más rápido era el de curvas elípticas y para determinar la primalidad de un número de 7993 dígitos decimales se tardaron 2 meses en un procesador de 2ghz. En la página de este mismo sitio específica para el ECPP (Elliptic Curve Primality test) que puedes encontrar aquí (http://mathworld.wolfram.com/EllipticCurvePrimalityProving.html) dicen que para un primo de 20562 decimal digits. The proof was performed using a distributed computation that started in September 2005 and ended in June 2006 and required a cumulative CPU-time corresponding to 2.39 GHz for 2219 days (just over 6 years). tardaron el equivalente a 6 años de computación uniprocesador en un procesador de 2,39 Gigahercios. En 2011 la situación no había cambiado mucho: se hbái demostrado la primalidad de un número de 26643 dígitos decimales. La complejidad computacional heurística de este método es O((ln N)^5).Su complejidad peor caso es desconocida (no entiendo muy bien por qué).

      Por esto mismo, por el tiempo que se tarda en demostrar que un supuesto primo cualquiera es un primo certificado (con un determinado test de primalidad), los primos más grandes de la lista de 5000 primos más grandes son de tipo Mersenne, dado que estos admiten un test de primalidad muy rápido.

      Entonces ¿ que debes de hacer ?. Primero pasa a tus “primos” un test probabilista (Rabin Miller) y si te confirma que es un primo con una cierta probabilidad, entonces le deberías pasar un test determinista. Olvídate de dividir por todos los posibles divisores hasta la raíz cuadrada, esto es impracticable para estos tamaños. Tiene que ser un ECPP o alguno más rápido que se haya descubierto desde 2009. Obviamente, todo esto te sonará a chino y seguramente con tus medios tardarás años. Por eso te hablaba yo de asociarte…

      Si quieres publicar aquí alguno de tus números (de 5 millones o de 10 millones) pásalo a una forma sucinta (puedes ver estas formas en el enlace que te pasé ayer). Yo tengo el programa Mathematica 5.1. que tiene un test de primalidad probabilista (Rabin-Miller + Lucas). Voy a averiguar que tamaño de números acepta y cuanto tardaría. Si acepta números de 5 millones de dígitos y tarda un tiempo razonable (horas), le podría pasar el test (gratis, claro). O igual lo podrías testear tu con Wolfram Alpha (https://www.wolframalpha.com/input/?i=1567+prime), aunque según he visto te conceden gratis un tiempo limitado de computo.

      Finalmente aquí tienes un sitio ( http://www.primechallenge.org/ ) dónde hay gente haciendo lo mismo que tu: encontrar primos grandes, aunque no necesariamente los más grandes. Con esto se cubren los huecos que van dejando los primos record. Creo que te facilitan software e incluso cloud computing (con tiempo limitado también, pero en este caso días) para que puedas testear si tu número propuesto es primo. Si te interesa, te tienes que registrar: http://www.primechallenge.org/enter/ . Me temo que también el tiempo que te den va a ser menos del que vas a necesitar:los mayores encontrados con este proyecto son de unos 18000 dígitos decimales (ver apartado leaders: http://results.primechallenge.org/Home/ ).

      Pero como de cualquier manera le vas a tener que acabar pasando un test determinista, conviene que vayas aprendiendo el ECPP. Aquí tienes una página con información sobre éste método y dónde te puedes descargar el software correspondiente http://www.lix.polytechnique.fr/~morain/Prgms/ecpp.english.html

      espero que esté todo claro
      saludos

      actualización 1.

      Aquí tienes un página con un programa que implementa ECPP.
      http://www.ellipsa.eu/public/primo/primo.html .En esta misma página hay un top 20 de números certificados según este método.
      http://www.ellipsa.eu/public/primo/top20.html
      Me da la impresión de que para los tamaños de 5M o 10M ECPP va a ser también impracticable.

      Según comentan en esta página igual deberías de considerar AKS, que al ser polínomico para estos tamaños podría ser el único determinista aplicable (aunque seguramente todavía tardaría años…). http://mersennewiki.org/index.php/Primality_test . Pero por su complejidad, O(n^6) con n = número de dígitos, seguramente también impracticable para el caso que nos ocupa.

      Aquí tienes un página con explicaciones (en inglés) y código para los diferentes tests probabilísticos: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=primalityTesting

      Estoy pensando que si pudieses adaptar tu método para encontrar primos de Mersenne. De esta manera te evitarías el problema del test de primalidad (el mismos que tienen todos los investigadores en este campo). Considera esta posibilidad. Hay otras formas con tests rápidos de primalidad. Por ejemplo los primos de Proth. http://es.wikipedia.org/wiki/Teorema_de_Proth. Viene a cuento comentar que Proth era un labrador aficionado a las matemáticas que hizo significativos descubrimientos (http://en.wikipedia.org/wiki/Fran%C3%A7ois_Proth).

      Actualización 2. Víctor, quiero que quede claro una vez más primero, que no soy experto en este tema y como ya te he sugerido en anteriores ocasiones, deberías de contactar con expertos y segundo, que sólo tu has decidido invertir tu tiempo y energía en este asunto. Yo solo me limito a contestar a tus preguntas y a aportar informaciones que pienso te puedan ser de utilidad. En ningún caso me hago responsable de tus decisiones.

      Actualización 3.

      Según todo lo comentado, yo me centraría en aplicar un Rabin-Miller a tus supuestos primos. Sobre este método, unos breves comentarios:
      –como sabes, a efectos teóricos da igual que expreses un número en binario o en decimal (esto no cambiará la complejidad asíntotica).
      –Miller propuso un método determinista pero condicionado a la verdad de la hipótesis de Riemann, con complejidad temporal O(log^3 n), con log n el número de dígitos. Además de ser condicionado a la validez de una conjetura que está por demostrar, esta complejidad ya es prohitiba para determinados tamaños, como los que pretendes atacar.
      –Rabin modificó la propuesta de Miller (según he leído la modificación es muy sencilla: en vez de recorrer todas las bases se seleccionan al azar en cada iteración entre el rango dado; pero para que esto sea válido se tuvo que basar en varios teoremas interesantes) obteniendo un algoritmo probabilista de tipo Montecarlo y de complejidad O(log base 2 ^3 n) bit-operaciones log n el número de dígitos binarios del número que se quiere testar. Si se quieren realizar más iteraciones (cambiando la base) para tener más seguridad, se multiplica esta complejidad por el número de iteraciones. Finalmente hay determinadas implementaciones que aceleran una de las subrutinas de este método y se podría llegar a O(log2^2n). Por lo tanto en el mejor caso es un algoritmo cuadrático en función del número de dígitos, lo cual para los tamaños con los que quieres trabajar (100 millones o 1 billón) diría que ya no es práctico (de momento te comento todo esto como un loro de repetición pues no he estudiado en profundidad el método, pero creo que todo es correcto). Obviamente cuantas más iteraciones, mayor garantía de que no haya falso positivo. Y por lo que he leído, cuanto mayor es el número mayor número de iteraciones se necesitan.
      Por lo tanto Rabin-Miller en teoría es bastante rápido pero a tus efectos ya es bastante lento.
      Puedes ver detalles sobre el análisis de complejidad aquí: http://www.cse.iitk.ac.in/users/manindra/presentations/FLTBasedTests.pdf
      –Pero he testado en Mathematica algunos primos de Mersenne concocidos para tener una idea del tiempo que tardaría en la práctica. La buena noticia (esto estaba claro) es que acepta los números en forma sucinta (por ejemplo del tipo 2^n-1). La mala es que tarda bastante. Los resultados son como siguen: para un número de 969 dígitos tarda aprox 1 segundo, para uno de 2993 dígitos aprox 10 segundos, para uno de 6987 dígitos ya tarda 3 minutos y para uno de 65050 dígitos, a los 20 minutos lo he parado sin obtener el resultado. Y sobre todo tampoco tengo claro de momento cuan fiable es este test Rabin Miller implementado en Mathematica para números grandes como aquellos con los que quieres trabajar.

      Me temo que por lo tanto no te voy a poder ser de ayuda y tienes que encontrar alguna alternativa más rápida que te permita testar tus supuestos primos con un Rabin Miller (esto es solo un primer paso). Igual prefieres programarlo tu. En esta página puedes encontrarlo codificado para múltiples lenguajes (seguramente incluyen algunos de los que conoces): http://rosettacode.org/wiki/Miller-Rabin_primality_test

      una vez más, suerte !

  26. Victor Luis Says:

    Hola IGNACIO…

    Realmente agradezco lo bastante de tu apoyo y guia, aunque se que sabes mucho, no es mi afan darte preocupaciones ni peor tratar de explotar tu paciencia y amabilidad.
    • Segun lo que me dices, debo validar algun primo de millones de digitos, antes de presentarlo o publicarlo. Me parece logico hasta cierto punto… decirte que soy Lic. en Laboratorio Clínico y he asesorado algunas tesis en mi área, para lo cual lei y aprendi metodologia de la investigacion, donde el metodo cientifico exige la validacion de un estudio, pues siempre hay una referencia para todo, a menos que sea un nuevo aporte, sin precedentes al conocimiento cientifico.

    ○ Mi caso estaria por ahi, no puedo solo regirme a algunos parametros establecidos por la comunidad cientifica, ni adoptar una u otra forma para seguir a quienes desde antes organizaron una especie de circulo cerrado para precautelar no se que fines o intereses… parece algo politico no?.. pero se me salio algo de eso… disculpa.

    ○ No quiero decir que la validacion sea innecesaria, al contrario, los numeros primos a presentar podran ser evaluados por los metodos que se presenten. Tampoco quiero imponer mi criterio… tan solo demostrar que no se ha tomado el enfoque adecuado alinvestigar por muchos años a los numeros primos, considerados como elementos individuales, aislados, rebeldes por aparentar una organizacion aleatoria y todas las conjeturas que se hicieron sobre estos.
    • La cosa es mas simple de lo que o hacen ver, tan simple, que con mis escasos conocimientos en matematicas pude desarrollar un algoritmo de tamiz y ahora uno para determinacion de primalidad… y eso cómo y por qué? pues porque cada idea que se me da, es aplicable con los primos origen y sus secuencias como factores, caso contrario, nunca hubiera podido, ni me lo imagine, llegar a tocar los limites de esta frontera, imposible para muchos.

    ◘ Bueno, es amplia la informacion que me diste y aumentas mas mi tarea y en parte lo aprecio y me agrada vencer obstaculos.
    • Sobre lo de asociarme… generalmente no ando por ese camino; mas se que para hacer grandes cosas, el trabajo en equipo es util y necesario. Con lo desconfiado que la vida me enseño a ser (sin ser extremista) me asociaria en un proyecto con mi hermano David y con mi Amigo Ignacio, poseedor de esta pagina muy util y haber si hacemos historia.

    ◘ Sobre la descripcion de mi metodo que haces en el punto 2. te estas refiriendo al que tratamos el año pasado, el cual si es Tamiz, depura numeros base generados para buscar hasta n primos.
    • El metodo de ahora es de primalidad, como dijiste varias veces, determinar un numero de n digitos si este es o no primo. Este metodo determina si un numero con millones de digitos es multiplo de algun primo. Para esto los numeros con sus digitos, deben corresponder a algun grupo origen, lo que nos da una gran probabilidad de que sea primo. Luego, se evalua con la base de primos para ver si alguno es divisor de este, que aunque el numero sea grande, tendra como minimo 2 primos divisores y el metodo lo determina como si fuera 2+2=4.
    • Para esta evaluacion se necesitan numeros primos, donde tener una base en archivos llevaria a usar varias computadoras con gran memoria en disco duro. Antes esto, aparecen los Primos Origen, que si son una cantidad finita (no mas de 10) pero que generan a todos los numeros primos, los que uso para la determinacion de primalidad, por lo cual no preciso ningun archivo de primos en el ordenador.
    • Te comentaba la necesidad de completar mis analisis e ideas… en la revision que le di, vi efectivamente la secuencia que se repite en cada primo para indicar sus multiplos dentro de los grupos origen, hasta que me di cuenta que obedecian a la SMD (secuencia de multiplos directos) no a la que usaba en el tamiz, sino a la secuencia basica de esta SMD, donde se rigen todos por esta secuencia y esta comandada por un primoorigen que interviene en todo y aun no se porque.
    ○ Tenia los multiplos de primos dentro de cada grupo origen; pero en cada grupo hay multiplos otros primos origen, donde se debia depurar por primalidad uno por uno, de modo que generar todos los primos hasta 1.000.000.000 era un limite no superado, ya que tardaba como 15 min en hacerlo. Aplicando la SMD, el proceso se volvio increiblemente rapido ya que no tarda ni un segundo osea 00:00:00 y exportaba todos los primos correctamente. Le puse a cargar primos hasta 1 billon y tardo 00:00:01 (1 seg) 5 Billones en 5 seg , 100 billones en 36 seg y 1.000 billones en 00:01:29 ya luego el array no soportó amplia mas la dimension; pero fue eficiente para la determinacion de primalidad.

    DETERMINACION de PRIMALIDAD
    Lo deje por unas horas para ver si determinaba primos de 20.000.000 de digitos y nada, era hora de dejarlo descansar. Pero despues, algo me decia que revise el metodo que obtiene el factor de primalidad hacia su primo divisor, lo cual resulta eficiente y es el que no ha dado problemas. Revise los bucles que son los que mas aumentan la complejidad y nada, ampliar la proporcion no resulto, pues vi que ese era su limite, modifique pasos del algoritmo y solo se acelero unos segundos. Pense que era el fin y se me ocurrio usar una funcion basica y eureka ! simplifique codigos de calculos; que restaron minutos al tiempo que lo hacia; pero lo mas interesante fue que me permitio ver un comportamiento repetitivo y proporcional, solo y si, cuando se evalua con su correspondiente primo divisor. Con esto, reduje a mas de la mitad del tiempo de proceso, llegando facilmente a los 20 millones, de ahi pase a 50 y luego pude llegar a primos de 100.000.000 de digitos. El archivo modo texto, ocupa 95.3 MB, donde intente copiar un primo de 10 millones a Word 2013 y se colgo, luego puse uno de 5 millones y a duras penas lo soporto con una velicidad lentisima.
    • Leere bien lo que me indicas para publicar un primo de 5 millones o menos, segun lo soporte.

    ◘ Ahora esta esencialmente estructurado mi algoritmo y hare elprograma en Visual Basic, ya que como te dije solo estaba haciendolo en VBA Excel, con lo que tendre mayor rendimiento.
    • Lo que sigue es encontrar un primo verificable de 100 millones de digitos, para evidenciar la utilidad de los primos origen. Al haber encontrado el metodo rapido de generar primos divisores en base a los primos origen, solo sera cuestion de tiempo para verificarlos, es decir, determinare primos con una efectividad media y luego solo en estos aplicare la determinacion final, con lo que pienso conseguir uno o tal vez mas de un primo verificable y valido para ser sometido a los algoritmos deterministas.
    • Mientras, me dare tiempo para realizar los analisis, pues como te dije, se que hay una manera directa se determinar si un numero es primo o no, segun su relacion con los demas primos origen.
    • Luego amigo, creo sera continuar para llegar al los 1.000 millones de digitos, que ahora no lo veo nada imposible.

    ◘ Esas son las buenas nuevas que queria compartir contigo y disculpa por extenderme… gracias por los temas, hare un esfuerzo para no verlos como chino…. Gracias…

    • Ireneses Says:

      Hola Victor,

      Yo creo que el tema está claro (y como según me dices eres de formación científica lo comprenderás). Dices que tienes un método rápido de generar primos de 100.000.000 de dígitos decimales o incluso más y de generar rápidamente todos los primos hasta una cifra dada (varios billones). Tu estás convencido de esto,no lo dudo, pero ahora tienes que convencer a los demás, por ejemplo a la EFF que da los premios, si decides reclamar alguno, o a mi mismo a quien todavía no has convencido.

      Para ello tienes que aportar un certificado de primalidad siguiendo un método de los comunmente aceptados. Ya se que tu interés no es necesariamente económico, pero en este enlace puedes leer las normas EFF: https://www.eff.org/awards/coop/rules . Son de interés ya que seguramente cualquier otra institución o persona te pedirá lo mismo para dar credibilidad a tus afirmaciones, repito yo incluido.

      Concretamente en EFF te van a pedir, entre otras cosas, un certificado de acuerdo con un test determinista (no aceptan test probabilistas) y además haber publicado tu resultado. Yo personalmente empezaría a creer que tienes algo nuevo si me envías un test probabilista (Rabin-Miller por ejemplo) de varios números primos de entre 5 millones de dígitos y 20 millones de dígitos que no se hayan publicado anteriormente (es decir que no estén en el Top 5000 de Caldwell. Creo que esto,aunque te llevará tiempo está al alcance de tus manos con tus medios. A la espera de esto me reservo la opinión.

      una vez más suerte

      P.s. Con respecto a lo de asociarte, obviamente si no es necesario mejor. Pero como dicen en las reglas EFF es muy improbable que un investigador independiente con un PC o similar consiga un primo de 100.000.000 de dígitos con un certificado determinista: se necesitan medios computacionales (un supercomputador o computación distribuidad en la que participen miles o cientos de miles de personas). Por mi parte ha sido un placer conversar contigo sobre estos temas (yo mismo he aprendido mucho) y te agradezco la confianza pero ya te digo que no tengo nada que aportar más que la información que ya te he aportado: no tengo más recursos computacionales que tu y esto es lo que vas a necesitar, en mi opinión. Y como sabes tampoco tengo tiempo ni es un tema que me interese especialmente. Si tu hermano David tiene más recursos computacionales que tu, sería muy conveniente.

      Por otra parte que yo sepa el método científico no obedece a ningún círculo cerrado ni motivaciones políticas, sólo a la verdad. Hay materias en las que reconozco posiblemente sea más complicado separar la verdad del interés (por ejemplo en ciencias sociales), pero no es el caso de las matemáticas. Otra cosa es que haya mucho investigador aficionado proponiendo resultados mal fundamentados y los académicos y otros investigadores se protegen contra esto. Y ojo no quiero decir con esto que los aficionados no puedan obtener grandes resultados. Pueden, como cualquier otro, pero no al margen del método científico, sino más bien siguiendolo…:-)

      Actualización 1.

      Ya he averiguado más sobre la complejidad computacional del método de Rabin-Miller. El método está basado en el teorema de Fermat, muy asequible; si el número fuese compuesto, 3/4 de las bases lo denunciaría; es decir, con cada iteración con otra base seleccionada al (pseudo) azar reduces la posibilidad de falso positivo 1/4; no entiendo muy bien de momento por que hay que incrementar el número de iteraciones cuando el número es más grande; tengo pendiente comprobar esto; muy posiblemente la respuesta está en este artículo que leeré mañana: http://www.math.dartmouth.edu/~carlp/PDF/paper88.pdf ; Visto en este thread de stack overflow: http://stackoverflow.com/questions/6325576/how-many-iterations-of-rabin-miller-should-i-use-for-cryptographic-safe-primes).

      Volviendo a su complejidad computacional, como sabes un número cualquiera N tiene log N dígitos (a efectos teóricos da igual la base). Para simplificar (eliminando los logarítmos) en lo que sigue asumimos que los números tienen n dígitos. Entonces Rabin-Miller necesita O(n) multiplicaciones modulares. Y como sabes cada multiplicación modular tiene una complejidad (para números de n dígitos o bits) de O(n^2). Por lo tanto la complejidad de Rabin-Miller es de O(n^3) operaciones de bit (esto tiene sentido pues vamos a trabajar con números mucho mayores que 64 bits). Por lo visto se puede rebajar a O(n^2) y si quieres seguir adelante deberías de averiguar como ya que para los números que estamos considerando la diferencia entre n^2 y n^3 ya es bastante significativa. A efectos comparativos, utilizar el método de fuerza bruta de dividir por todos los primos inferiores hasta la raíz cuadrada tendría una complejidad de O(2^Raiz cuadrada[n]) y por lo tanto subexponencial.

      Entonces si el número que quieres testar tiene por ejemplo 10.000.000 dígitos vas a necesitar en total (no tengo en cuenta las constantes; no se cuan importantes son en Rabin-Miller) 10^14 operaciones para determinar su probable primalidad. Si tenemos en cuenta que 3 Ghz (la potencia aproximada de los procesadores actuales) son 3.000.000.000 ciclos por segundo (es decir 3 billones de ciclos por segundo) y asumimos que en cada ciclo se pudiese hacer una operación de bit (lo cual me imagino no es del todo correcto, no se si en las operaciones necesarias para Rabin Miller el ratio es mayor o menor), en una computadora uniprocesador, se necesitarían unos 10^14/3*10^9 segundos (es decir unas 9 horas) para demostrar que tu número de 10.000.000 dígitos es un primo probable según Rabin Miller. (Esto no me cuadra con las prácticas realizadas con matemática: para estos mismos cálculos con un número de 65050 dígitos me sale un tiempo bastante inferior a una hora, pero a los 20 minutos todavía no había obtenido respuesta; espero no haberme equivocado en mis supuestos y cálculos🙂 ).

      De interés para todo esto son estos dos enlaces: http://www.it.uu.se/edu/course/homepage/dark/ht11/dark6-performance.pdf
      http://www.cs.berkeley.edu/~vazirani/algorithms/chap1.pdf
      El segundo es una introducción muy clara a los algoritmoc numéricos (con enteros, de teoría de números conmputacional).

      Actualización 2.

      Segundo intento de testar el número de 65050 dígitos con Mathematica. Tras dos horas lo he parado sin resultado. Claramente el cálculo teórico es muy diferente a la práctica. Posibles motivos: mi procesador es bastante más lento que 3 Ghz (esto es así, es justo la mitad, 1,5 Ghz y por lo tanto la duración tiene que ser el doble de la estimada), las palabras son de 32-bits (seguramente esto también retrasa pero no creo que sea un problema de overflow; Mathematica puede trabajar sin problemas con números de este tamaño). Y es posible que la clave esté en que el supuesto un ciclo = una operación de bit no sea del todo correcto. Esto de momento no lo tengo claro. Tampoco si hay mucha dependencia enlas instruccions de Rabin-Miller lo cual podría retrasar. De interés: https://gmplib.org/~tege/x86-timing.pdf
      http://www.agner.org/optimize/instruction_tables.pdf
      Sobre como se puede tratar el problema de la arítmetica de números grandes cuando el hardware es de palabras de 32-bits o 64-bits ver:
      http://www.cs.utexas.edu/users/djimenez/utsa/cs3343/lecture20.html
      Esto lo conoces tu mucho mejor que yo.
      Sobre la problemática de la confianza que pueda dar el test de primalidad del paquete Mathematica, PrimeQ[], es interesante ver este enlace: http://math.stackexchange.com/questions/123465/do-we-really-know-the-reliability-of-primeqn-for-n1016

  27. Victor Luis Says:

    Holas Ignacio…

    Muy claro lo que dices y comprendo tu posicion amigo, la demostracion de algo debe ser probada y fundamentada para aceptar su veracidad y efectividad.
    • Por este o otros motivos estoy terminando de analizar algunos apuntes de ideas y dudas sobre los primos origen, que son necesarios para aplicarlos a mi metodo.
    • Sobre la complejidad, por ahora es como indicas de fuerza bruta, pues evaluo el numero con muchos digitos si es multiplo de primos divisores hasta su raiz cuadrada.
    El calculo no lleva tiempo, sino la cantidad de primos divisores para un numero tan grande como 100.000.000 de digitos, por eso necesito analizar otras ideas relacionadas con los primos origen, como lo que te comentaba de identificar la relacion de un grupo con otro u otros, asi de este modo, solo se usarian primos divisores de determinados grupos origen, lo que reduciria en gran parte su complejidad y tiempo de procesamiento.

    ○ Algo que ido revisando y que lo mencionas tambien, es sobre los “Pseudoprimos” osea numeros compuestos que pasarian como primos… pasarian a que? diria yo…
    • Segun como lo veo, solo hay Primos y Compuestos. Los “Primos Originados” tienen todas las caracteristicas de un numero primo, donde estos podrian pasar por pseudoprimos, a lo que yo llamo “primos multiplos” ya que son multiplos de los primos iniciales y se presentan solo en su propio grupo.
    • Depurar estos es simple, solo se aplica un factor con el que sabemos los multiplos no primos en su grupo. Pero eso no es suficiente, ya que hay multiplos de otros grupos, donde se aplica otro factor para depurarlos.
    • En mi ultimo analisis, encontre que cada primo origen y primo originado valido, solo tiene 1 Multiplo en cada Grupo Origen.
    Para que me entiendas, no es que tenga uno solo, sino que al encontrar el 1° multiplo, se depuran con su factor, todos los del grupo y no tendria mas multiplos en ese grupo; pero si otro en cada uno de los demas grupos origen.
    • El procesamiento de esto resultaba complejo y lento; pero como te mencione, aplicando la SMD, se identifica directamente los multiplos iniciales y su posicion, para depuralos al tic tac.
    Aplicando el metodo, el proceso se acelero enormemente, como te dije ayer.

    ○ Para terminar sobre los pseudoprimos, en una pagina ponian un ejemplo del numero 1.373.652 que seria pseudoprimo al pasar no se que pruebas.
    • Si determino su grupo origen, se ve que no corresponde a ningun primo origen, por lo que de inicio “no es primo”. Evaluando unas listas que publicaron, encontre que mas del 50% no pertenecen a ningun primo origen, lo que se hace con un sencillo calculo. Por eso no comprendo, la denominacion que se le dan a estos numeros que son una mezcla de numeros compuestos y los que denomino primos multiplos.

    ◘ Cuando termine mis analisis, te los comunicare y compruebes la veracidad de mis metodos y algoritmos.
    • Mientras ya voy determinando la primalidad de primos de cien millones de digitos encontrados con una efectividad baja. El proceso sera escalonado, descartando en el camino a los que sean multiplos de primos divisores.

    • Ireneses Says:

      Hola Victor,

      0. Con tu último comentario, me da la impresión de que has vuelto al principio, que no has avanzado nada. Por ejemplo no me queda claro si tienes ya identificados números que según tu método son primos, de 5*10^6 o 10^7 dígitos. Si es así te sugiero que les pases desde ya el test Miller-Rabin probabilista. Éste puede llevar su tiempo (varios días o incluso semanas) y si finalmente alguno fuese compuesto ya sabrías que tu método no es correcto. Yo es lo primero que haría. Si al contrario le pasas el test Miller-Rabin a unos diez o veinte de estos que hayas descubierto y todos lo pasan, quizás tengas algo interesante.

      Ojo no valen números que ya estén en el Top 5000 de Caldwell o que se hayan publicado en otras listas similares (aunque entiendo que para estos tamaños, Caldwell es exhaustivo). Deberías de comprobar esto antes de iniciar los tests. Por cierto he visto que los números que aparecen en el TOP5000 de Caldwell también se han debido de someter a un test determinista. Es decir si tus números pasan el Miller-Rabin, todavía no podrían entrar en la lista. Puedes verlo tu mismo en esta página: http://primes.utm.edu/primes/download.php. Como ves al final comenta que los que aparecen en su lista son primos probados y comenta además que hay otras listas de primos probables y da un enlace: http://primes.utm.edu/glossary/page.php?sort=PRP

      No obstante, yo de ser tu, me centraría de momento en aplicar el Miller Rabin a los que hayas encontrado de estos tamaños: 5*10^6 o 10^7 y me olvidaría de momento del primo de 100.000.000 de dígitos. Testar este, incluso con un Rabin Miller probabilista puede ser demasiado costoso en tiempo. Y mucho más si pretender aplicarle el determinista de fuerza bruta: el resultado no lo verían ni tus nietos.

      Si quieres publicarlos (prefiero que no sea aquí, sino en algún sitio propio tuyo) debes de pasarlos a una forma sucinta. Esto es muy sencillo. Una de las maneras es la siguiente: si tienes un primo, le sumas 1 para obtener un número par y luego este número par lo divides sucesivamente por dos hasta encontrar un impar k. De esta manera lo podrás expresar de la forma (k*2^c)-1. Obviamente c es el número de veces que has tenido que dividir el primo dado por dos, tras sumarle 1 para obtener k. Ejemplo con el el primo 1979 = 495*2^2-1. Esperemos que para los que encuentres se pueda repetir la división por 2 múltiples veces….🙂

      Si finalmente encuentras algún primo probado podrás entrar en la lista de Caldwell: http://primes.utm.edu/bios/index.php . Ojo, Víctor, esta lista te puede ser de utilidad para encontrar expertos con los que contactar. Todos ellos están interesados en el mismo problema que tu.

      1. Con respecto a los pseudoprimos, ya te sugerí que antes de desarrollar tus propias ideas deberías de leer toda la literatura previa sobre el tema. Si la hubieses leído sabrías lo que es un pseudoprimo.

      En particular debes de estudiar en profundidad arítmetica modular básica (es muy sencilla; puedes empezar por el artículo de wikipedia: http://es.wikipedia.org/wiki/Aritm%C3%A9tica_modular).

      La arítmetica modular es la rama de las matemáticas en la que se expresan el pequeño teorema de Fermat, el teorema de Euler, generalización del anterior (y en realidad demostración dado que hasta entonces era sólo conjetura), la función de Euler (la función es necesaria para comprender el teorema de Rabin-Monier,un caso más de descubrimiento independiente casi simultáneo según informan aquí: http://books.google.es/books?id=X1WavewtDxMC&pg=PA81&lpg=PA81&dq=monier+primality&source=bl&ots=fNwQyYnCnj&sig=w7KpJOnkqy8HQ8piRgEmkjkOI2k&hl=es&sa=X&ei=O5wPU_yXNqmp0QXO-4GQAw&ved=0CEEQ6AEwBDgU#v=onepage&q=monier%20primality&f=false y en otro sitios, aunque no tengo claro en que artículo publicó Monier su descubrimiento independiente, básico para el test de Miller-Rabin) generalización del anterior), y los varios tests de primalidad construidos en base a estos resultados (Fermat y sus variaciones entre las cuales estaría Miller-Rabin (en sus versiones deterministas y probabilistas).

      Para comprender los números de Carmichael, los pseudoprimos y similares tienes que comprender previamente todo esto que te digo. Por ejemplo los números de Carmichael son números compuestos que pasan el test de Fermat para todas sus bases. Los pseudoprimos se definen de manera similar con respecto tanto al test de Fermat (son números que pasan este test para algunas de sus bases) como con respecto a otros tests de primalidad.

      [Nota al margen: Reconozco que finalmente me ha enganchado y yo lo estoy estudiando (en ratos libres por mera curiosidad) más detenidamente. Como verás Víctor casi todo se basa en los resultados de Fermat. También los métodos más básicos de factorización por lo visto provienen del perfeccionamiento de ideas de Fermat. Este abogado era un matemático aficionado. El impacto de su contribución a las matemáticas contemporáneas (análisis / cálculo, geometría algebraica, teoría de números y teoría de probabilidades) posiblemente esté subestimado. Puedes leer sobre sus matemáticas aquí: http://www.math.rutgers.edu/~cherlin/History/Papers2000/pellegrino.html . O quizás se lo valore en su justa medida. En este libro, una biografía que parece bastante completa lo comparan con Arquímedes, Newton, Euler y Gauss que son considerados las cumbres matemáticas (yo quizás añadiría alguno de la tradición islámica y algún otro de la tradición italiana del renacimiento), antas de la explosión (y profesionalización) de la segunda 1/2 del sXIX, XX y esperemos XXI: http://books.google.es/books?id=My19IcewAnoC&printsec=frontcover&dq=fermat&hl=es&sa=X&ei=db8PU53HG8Ok0QWtlIGgBA&ved=0CEEQ6AEwAg#v=onepage&q=fermat&f=false
      Por otra parte no es casualidad que Rabin le diese el toque probabilista a este test: fue el que introdujo en ciencias de la computación el concepto autómatas no deterministas y luego de autómatas probabilistas. Sin este giro el test, todavía el más utilizado para las aplicaciones prácticas pero no para premios y aparición en listas, no sería práctico. Sobre Monier hay poca información. Este libro parece bastante completo en referencias históricas: http://books.google.es/books?id=iJx1lP9ZcIkC&pg=PA314&lpg=PA314&dq=monier+primality&source=bl&ots=c4GDxTV32l&sig=i5cc1oey-LPQm_LUzKNx5WpFfsM&hl=es&sa=X&ei=O5wPU_yXNqmp0QXO-4GQAw&ved=0CFYQ6AEwBzgU#v=onepage&q=monier%20primality&f=false%5D.

      2. Un artículo muy recomendable, aunque quizás algo avanzado, es este http://download.springer.com/static/pdf/470/chp%253A10.1007%252F978-3-642-32166-5_6.pdf?auth66=1393683627_29c70fcb5d174787ca7dc856940928d5&ext=.pdf dónde hablan de tres
      problemas relacionados: primalidad, factorización y logaritmo discreto (que es el problema inverso de la exponenciación modular).
      Sobre primalidad distingue muy claramente entre tener un test de primalidad rápido (como por ejemplo Miller-Rabin) y poder utilizar este test para poder encontrar primos grandes rápido. Esto segundo es posible ya que en general dado un número cualquiera de k dígitos, solo habrá que repetir el test un número polinómico de veces en función del número de dígitos hasta dar con un primo. Pero si los primos fuesen menos frecuentes de lo que son, podría no darse este caso sino el contrario, es decir que hubiese que aplicar el test una cantidad exponencial de veces en función del número k de dígitos del número que se busca.

      Todo lo que sigue se sale un poco de tu tema pero te comento en caso de que sea de tu interés. Si en la exponenciación modular te dan la base, el exponente y el modulo y se trata de encontrar el resto, en el logaritmo discreto te dan el resto, el modulo y la base y se trata de encontrar el exponente. El primer problema es fácil (desde el punto de vista de complejidad computacional pero el segundo intratable: no se ha encontrado un algoritmo de tiempo polinómico para ello. En esto el logaritmo discreto es parecido al problema de factorización: multiplicar dos factores para encontrar un producto es más fácil (desde el punto de vista de la complejidad computacional) que encontrar los factores dado el producto. No obstante estos dos problemas serían polinómicos para una computadora cuántica (lo cual les hace más interesantes a los ojos de los estudiosos de la teoría de la complejidad computacional). Más sobre el logaritmo discreto aquí: http://math.stackexchange.com/questions/52545/primitive-root-and-discrete-logarithm.

      [Nota al margen: a mi estos problemas, logaritmo discreto y factorización me interesan ya que se pueden expresar (son) como problemas de teoría de grupos].

  28. Victor Luis Says:

    Holas Ignacio…

    Estamos en lo mismo…
    a) Como ya tengo el metodo o algoritmo, ahora estoy en la “efectividad” de obtener numeros primos. Como te habia indicado anteriormente, completando esta etapa importante, el algoritmo obtendra un numero primo 99.9% real o verdadero, indico este porcentaje, ya que en mi area siempre decimos que no hay metodo de diagnostico 100% pero veo que en matematicas todo debe ser exacto.
    • En los analisis que realizo para esta etapa, veo que es importante determinar a que primo origen pertenece el numero con millones de digitos y eso me esta costando un poco; pero casi ya tengo el metodo de calculo.
    • Para verificar la efectividad, estoy trabajando con primos menores a 100 digitos, y los compruebo en la pagina de Factoris que determinan la primalidad con el metodo de Miller-Rabin. Cuando pongo un numero con mas de 100 digitos, no lo procesa por el tiempo limite de 20 segundos.
    ◘ Este limite pequeño es util para ajustar la efectividad, donde como bien dices, evaluando 50 primos encontrados y todos sean correctos, el algoritmo estara listo para cualquier numero de digitos, donde el primero de 5*10^6 encontrado te lo enviare de la forma sucinta como me indicaste:
    Ej.
    Es Primo: 227694979244533313
    569237448111333282 ^2 -1

    b) Sobre los “Pseudoprimos” si he leido poco al respecto; mas no profundamente, por lo que leere los enlaces recomendados.
    • De igual manera mi criterio es el mismo, la amyor parte de los numeros que se ponen de ejemplo son compuestos al no pertenecer a ningun grupo origen, donde ni en mas mil años seran algo de primos, por lo que esta mal llamarlos pseudoprimos.
    • El ejemplo que puse el otro dia, lo encontre en una pagina donde ese numero pasaria los 3 test al respecto y por eso seria pseudoprimo, yo aplicaria el test…

    n1= N-(trunc((N-p1)/fm)*fm)

    Donde:
    N… numero
    p1.. primo origen fundamental
    fm.. factor multiplo de primos origen
    ►Por lo que si n1 no es uno de los primos origen, este no corresponderia a ningun grupo origen y por lo tanto seria compuesto.
    ►Si n1 pertenece a algun grupo origen, se debe determinar su primalidad, ya sea evaluando su posicion dentro del grupo, donde no debe corresponder a ninguna proporcion multiple de primos validos de todos los grupos, hasta el primo de la posicion =sqr(N)/fm
    Esta seria una determinacion de primalidad segun la posicion y grupo origen del numero.

    c) Antes de poner un primo en la lista de Caldwell, la efectividad debe estar correctamente calibrada y de logica que no usare uno ya publicado, no creo que haya mucha coincidencia de encontrar uno de esos; mas no será el unico que dispondre cuando tenga el algoritmo a punto.

    ○ Sigo completando mis analisis y al mismo tiempo surgen otras ideas que son utiles para implementar la eficiencia de mi metodo.
    Aprovechare al Carnaval que no es de mi agrado, para leer los temas indicados poder completar la segunda etapa del algoritmo. Cualquier novedad te la estare comunicando como tambien el tema de los pseudoprimos que quedaria pendiente.

    • Ireneses Says:

      Victor, el ejemplo que has puesto, ¿ es tal y como aparece o lo has puesto mal ?

      A mi me aparece así:

      227694979244533313 * 569237448111333282 ^2 -1

      Si es tal y como aparece ¿ es por poner algo o según tu método es primo ?. Lo digo porque en realidad este número no lo es. Es un número compuesto y sus factores son: {“197”},{“33469”},{“168647686606736587”}, {“66351543421033318766772830521”}: puedes comprobarlo tu mismo ejecutando el producto…

      Es posible que refieras a
      (227694979244533313 * 2^569237448111333282) – 1.
      Este por el número de cifras de su exponente no puede tener 5*10^6 dígitos. Debe de ser enorme (compara con el exponente del primo más grande conocido: 2^57885161-1). En cualquier caso, he intentado pasarlo a un número desarrollado para contar el número de cifras y me da overflow en Mathematica. Se confirma que Mathematica, en mi versión al menos, no puede trabajar con números de este tamaño. Es de la forma (impar*par)-1= impar y no veo ningún motivo para que no pueda ser primo (igual algún experto se daría cuenta enseguida que no puede serlo).

      Es posible que te refieras a (227694979244533313569237448111333282 ^2) -1, Este tampoco es primo. Sus factores son.
      {“3”, “1”},
      {“13”, “1”},
      {“29”, “2”},
      {“613”, “1”},
      {“809”, “1”},
      {“4691”, “1”},
      {“27143”, “1”},
      {“77479”, “1”},
      {“43099519”, “1”},
      {“80196129410240075137”, “1”},
      {“93476876475574658501”, “1”}

      2. Recuerda que la forma sucinta que te comenté es n*b^m-1 (valen otras bases b diferentes de 2, dado que hay números no divisibles por dos, como los múltiplos de 3 o de 5) y no n*m^2-1. Esta última también es otra forma sucinta pero comprimes mucho menos el número original. Como puedes comprobar en la lista de Caldwell utilizan la forma que te sugiero.

      3. Sobre los pseudoprimos, sigues sin comprender el concepto. Esperaremos a que leas el material que te pasé.

      Todo esto está muy verde todavía. A ver si con el Carnaval (ya sé que allí, en Latam, se paraliza todo; tu te lo pierdes :-)) madura…

      saludos

  29. Victor Luis Says:

    Holas Ignacio…

    El ejemplo que puse de la forma sucinta el cual es:
    Ej.
    Es Primo: 227694979244533313
    569237448111333282 ^2 -1

    • Veo que debi ponerlo separado, tu lo tomaste como todo un numero, si te fijas despues del numero primo:
    Es Primo: 227694979244533313 ***

    Puse la forma sucinta:
    569237448111333282 ^2 -1

    • No hay continuidad, por lo que eran 2 numeros y lo tomaste como uno solo. Era algo nuevo para mi, asi que tome un numero primo, el cual SI es primo: 227694979244533313 pero no me aceptaba en Excel para hacer las divisiones pares, por lo que hice una pequeña aplicacion para que realice la funcion de este y cualquier numero con mayor cantidad de digitos. Asi que como buen alumno, lo puse para que lo evaluaras y veo que casi descubres un primo titanico.

    ◘ Te comento que mi algoritmo ya tiene efectividad, digo que ya tiene porque encontre un fallo en un calculo de la proporcion de digitos y una salida Exit luego de determinar que el numero es multiplo no primo.
    • La falla es un error de calcuo, que por mejorarlo lo empeore, donde los resultados no eran correcto y aparcecian todos como primos. Analice paso a paso, realice otras variaciones de mi metodo y todo conducia a que era el apropiado, hasta que identifique el punto de error.
    • Gracias esto logre la forma de calcular e identificar a que primo origen pertenece un numero grande, eso era fundamental para mi algoritmo y en la ejecucion se ve el resultado, pues determina la primalidad de un numero que no sea de un grupo origen, pues de echo es compuesto !
    Es nomas rapido, por ser su primera vez, pudiendo determinar estos primos.

    278160163646410412712326633297
    278160163646410412712326633347
    390107783459753595832019210317
    * Estos de 90 digitos Factoris no los pudo verificar por el tiempo mayor a 20 seg.
    533579289302774014760814708045414862790373961871056949364524766053592468298622647264279307
    150529223584363875478190683747613781162807202956066061792379463119115174048714532560217307
    259179347003742840278702404811259179347003742840278702404811259179347003742840278702404321
    259179347003742840278702404811259179347003742840278702404811259179347003742840278702404389

    • Primesieve solo llega a 16*10^18 donde exporte una seleccion al azar y mi algoritmo los identifico a todos.
    De PrimeSieve:
    227694979244533313
    227694979244533393
    227694979244533421
    227694979244533487
    227694979244533517
    227694979244533531
    227694979244533601
    227694979244533621
    227694979244533657
    227694979244533753
    227694979244533769
    227694979244533781
    227694979244533799
    14424528133187174747
    14424528133187174801
    14424528133187174803
    14424528133187174843
    14424528133187174861
    14424528133187174869
    17621011620014587913
    17621011620014588021
    17621011620014588029
    17621011620014588059

    DESCRIPCION del METODO.
    • Toma un grupo de numeros y verifica que correspondan a algun primo origen, con lo que de inicio se cuatruplican sus opciones de ser primo.
    • Realiza la determinacion en base a primos iniciales de archivo hasta un limite bajo, donde muchos y a veces todos resultan ser compuestos.
    • Con los que pasaron la 1° prueba, se continua la determinacion hasta otro limite mayor de numeros primos de archivo. Si hay numeros que pasan la prueba, se aplica una 3° mas extendida que deberia ser hasta ru raiz cuadrada, terminando la determinacion, es indicando que son primos.
    • Para esta 2° y 3° prueba, ya no se usarian primos de archivo, sino se generarian desde los primos origen, segun la cantidad que sea necesaria. El algoritmo para esto ya esta desarrollado y solo seria preciso revisar la configuracion de las variables a usar.
    ► Iniciando la determinacion a un grupo de numeros, se ahorra tiempo, ya que un calculo se aplica al numero digito y otro al primo divisor, donde este ultimo es el mismo que se aplica a cualquier numero, indicando en el valor final, si es o no multiplo del primo divisor. Como te daras cuenta, matamos varios numeros de un solo tiro, donde la complejidad disminuye mas del 50%. Ademas cuando un numero es determinado como no primo, queda dashabilitrado y no entra en los bucles de calculos.
    • Este metodo es eficiente, lo he pruesto a prueba para determinar primos desde 0 hasta un poco mas de 3 millones y no ha fallado en ningun primo.
    ►Comentarte que hasta 2.000 y un poco mas, solo los primos origen depuran sus multiplos y hasta casi el 10.000 participarian los primeros primos originados. Pienso que debe haber un limite mas preciso e inferior que el de la raíz cuadrada, que nos indique el numero de primos divisores a utilizar.

    ◘ Al tener la manera de determinar, el primo origen de un numero de muchos digitos,veo que es posible calcular su posicion dentro de su grupo origen y de esta manera determinar su primalidad casi directamente, cuando ningun primo divisor, coincida con la posicion del numero en evaluacion..
    Si resulta seria la forma mas rápda,simple y directa, para poder decir si es o no primo.

    ☼ Bueno amigo, disfruta tus dias de Carnaval, de una forma sana, con mucha alegria y sin excesos…

    • Ireneses Says:

      Hola Víctor,

      Gracias por la aclaración y disculpa que sea tan incisivo, pero ¿ que tiene que ver el primo 227694979244533313
      con el número 569237448111333282 ^2 -1 ? De acuerdo que el primero sea primo, pero el segundo desarrollado es igual 324031272332302850658683771680891523 y según Mathematica no es primo. Y además como te dije tampoco tiene la forma sucinta que te sugerí…

      En fin, con respecto a lo demás, todo me parece muy bien, pero esto ya lo hacen otros métodos. Por mi parte me descuelgo del tema hasta que no vea evidencia de primos de Rabin-Miller (es decir que hayan pasado este test) de entre 5*10^6 y 10^7 dígitos. Reconozco que todavía no tengo claro cuando puede tardar este test para estos tamaños pero entiendo que es factible para alguien con tus medios.

      Obviamente puedes seguir comentando si quieres. Estás en tu casa…
      Y disfruta tu también: para mi estudiar / investigar sobre matemáticas puede ser un gran placer, si dispongo de suficiente tiempo y tranquilidad.

  30. Victor Luis Says:

    Holas Ignacio…

    Revisando sobre la forma sucinta que seria de la forma 2n -1, en lo que puse olvide agregar *2 ^2 -1… error mio.. lo acepto.
    • Para enviarte en esta forma, debere revisar antes de realizar la determinacion, para que el residuo no sea largo.

    ◘ PSEUDOPRIMOS.
    Lei al respecto, son tratados en el teorema de Fermat, Carmichael y para las bases a usar en el test de Miller-Rabin. Supongo por eso me dijiste que revisara la informacion y luego debatir.
    ○ Aunque son de utilidad, pienso que muchos no deberian ser considerados pseudoprimos.
    Vamos a un ejemplo claro. En una de las pagina recomendadas indican estos pasan la prueba: an-1 ≡ 1 (mod n)

    Números de Carmichael (13)
    561
    1105
    1729
    2465
    2821
    6601
    8911
    10585
    15841
    29341
    41041
    46657
    52633
    Son los primeros pseudoprimos de Carmichael, que pasan la pruebas a y b

    ○ De los 13 de la lista, determinando si pertenecen a algun primo origen, realizando un simple calculo, en mi criterio, solo 8 serian pseudoprimos, segun su definicion de comportarse como numeros primos.
    * Pseudoprimos (8)
    1.729
    2.821
    6.601
    8.911
    15.841
    29.341
    41.041
    52.633

    ○ Aparte, sabiendo ya cual es su primo origen, mediante el FMG (Factor Multiplo Global) se determina directamente, cuales serian multiplos globales de un primo origen; donde de la primera lista solo quedarian:
    * Posibles Primos (5)
    6.601
    8.911
    29.341
    41.041
    52.633

    ► Te expongo esto, pues, mejorando la definicion de pseudoprimos, los metodos que los utilizan podrian efectivizar su determinacion de primalidad.

    ◘ ALGORITMOS de PRIMALIDAD.
    Veo que te basas en el algoritmo de Miller-Rabin y lo tratare de implementar.

    ○ METODO por ACTIVACION.
    Analizando su metodologia para determinar si un numero es compuesto con un cierto numero de bases de pseudoprimos, que de no serlo seria posible primo. Se me ocurrio un metodo, segun lo que te comente, que los PO (Primos Origen) depuran sus multiplos hasta los 12.000 numeros naturales.
    METODOLOGIA
    • Se evaluan numeros generados de los primos origen, hasta un rango indicado.
    • Inicialmente se determina el limite de activacion del 2° PO = P2 ^2
    • Al evaluar cada numero (NB), primero se ve si es divisible o multiplo del 1° PO para descartarlo, sino, se compara con el limite para activar el 2°PO. De ser asi, se agrega a la base de un vector VP(1) y se calcula el limite para el siguiente PO y asi se procede para activar los siguientes primos.
    • Luego se evalua si NB es multiplo de alguno de los primos activados de la base VP, siendo compuesto al determinar:
    nb mod vp(n) = 0
    • Si con ninguno de la base da un residuo =0, el numero NB es PRIMO.

    ▼Observaciones.
    • Con solo los PO se determinan directamente los primos hasta el rango de 12.000, los que coinciden exactamente con el metodo clasico de divisibilidad hasta la raiz cuadrada de un numero.
    • Si calculamos sqr(12.000)= 109.5 teniendo que usar unos 27 primos divisores con el metodo clasico, mientras que mi metodo no usa mas de 10 PO.
    * PO (abreviatura de primos origen)

    ○ METODO POSICION en GRUPO ORIGEN.
    Como me dijiste, el metodo por fuerza bruta, osea el metodo clasico que es determinista, tarda mucho tiempo, pero el algoritmo esta ya completo y sirve para seleccionar posibles candidatos a ser numeros primos, evitando aplicar la primalidad a cualquiera.
    • Al comprobar que el metodo por activacion era eficiente hasta 999*10^12, que es limite en VBAExcel, analice el metodo que te comenté de determinar un numero compuesto mediante la posicion de multiplos en cada Grupo Origen (GO).
    ** De antemano te aclaro que no es un metodo de tamiz.
    METODOLOGIA.
    • Indicamos un numero NB a determinar su primalidad.
    • Se calcula su posicion dentro de su Grupo Origen (GO) osea el numero de fila NF.
    • Se determina la posicion de inicio (F1) de la evaluacion, mediante el m.c.m. de los primos origen, con el cual nos aproximamos a la posicion de NB obteniendo el Numero de Inicio (NI) de la base.
    • Desde F1 hasta NF que no es mucho, se determina los multiplos que existan en el GO de NB de primos divisores hasta un Limite.
    • Al encontrar un multiplo, se marcan sus demas multiplos con el FMG, al mismo tiempo evalua si la fila de estos es =NF →entonces NB es Compuesto
    • Si hasta llegar al Limite NF no coincide con ningun mulplico marcado → es PRIMO

    ▼RESULTADOS.

    * Metodo Clasico:
    Primos usados Tiempo
    644.484 0:00:08
    919.919 0:00:19
    1.455.669 0:00:33
    1.892.374 0:00:28
    1.951.441 0:00:28

    * Metodo Posicion en Grupo Origen
    Primos usados Tiempo
    252.272 0:00:08
    359.565 0:00:10
    567.626 0:00:14
    737.070 0:00:14
    760.020 0:00:14

    ** El nuevo metodo lo comparé con el metodo Clasico por ser determinista, como el anterior y los que voy desarrollando.
    • La diferencia de Tiempo es notable, el metodo de posicion en GO determina la primalidad en la mitad de lo que lo hace el metodo clasico.
    • Otro aspecto importante es el uso de Primos Divisores, mientras que el metodo clasico utiliza hasta la raiz cuadrada y este se va incrementando segun aumente el tamaño del numero. El metodo de posicion GO solo emplea 2/5 partes de primos que el anterior, lo que acelera la determinacion.
    • Para verificar su efectividad, me tome el tiempo de determinar la primalidad de NB desde 1 millon hasta 999 billones que es el limite de VBAExcel.

    ▼IMPLEMENTACION.
    • Voy a implementar el algoritmo para determinar primos de mas digitos, como primer limite sera hasta 100 digitos.
    • La ventaja del algoritmo es que realiza operaciones aritmeticas basicas, para lo cual ya tengo implementado funciones para sumar, restar, multiplicar y dividir en un numero de varios digitos, siendo funcional para realizar los calculos iniciales del algoritmo y los que se realizan para determinar multiplos, marcarlos y evaluar su coincidencia con NF.
    • Faltaria implementar estas u otras funciones similares, donde los primos divisores se traten como cadena de digitos y aplicar uno de los metodos que te fui comentando, para generar la base de primos divisores que se necesiten, desde los primos origen y sin recurrir a los archivos.
    •• Aún no he encontrado la relacion directa de un multiplo no primo de un GO con su primo divisor de otro GO. Solo esta el FMG que determina los multiplos dentro de cada GO, siendo que segun el tamaño de cada primo, este tendra si o sí un multiplo en cada GO, lo cual se determina con la SMD y sus posiciones con sus DS.
    •• Como es el primer desarrollo y resulta eficiente y efectivo, aplicare factores y calculos empleados en los anteriores algoritmos, para implementarlos y analizar si me dan la respuesta a su relacion directa.

    ►Lo que me pregunto es que si llegando a funcionar este metodo, como se lo conceptuaria…? Determinista o Probabilista.

  31. Victor Luis Says:

    Holas Ignacio…

    Te comento que el metodo de Posicion en Grupo Origen (GO) da buenos resultados; pero se deberia aplicar para determinar primos en un grupo indicado de Numeros Base (NB) Detalles…
    • Indicamos un grupo o lista de NB, que como sabes pertenecen a Primos Origen (PO) siendo candidatos a ser primos. Estos estarian en una matriz o tabla, donde la columna seria su GO y las filas su posicion dentro del grupo.
    DEPURACION.
    • Inicialmente tomamos los PO, para determinar sus multiplos con la SMD.
    • De cada multiplo obtenemos su GO que nos indica la columna (C1)y con la diferencia su posicion en el grupo que seria la fila (F1)
    • Desde F1 calculamos el primer multiplo de este, en la matriz o tabla que tienen los NB con n digitos. Desde ahi continua la depuracion de sus multiplos, marcandolo como false o poniendo =0 que nos indica que es no primo.
    • De esta manera proceden los primos divisores, depurando sus multiplos de cada GO; pero en la matriz o tabla de NB.
    ►Recordemos que la posicion de los multiplos de un primo en cada GO es proporcional a su valor, donde al encontrar un multiplo, desde esa posicion o fila, se determinan las posiciones de sus multiplos de adelante o de atras que tenie el primo.
    * Con esta proporcion, es facil calcular la posicion de sus n multiplos dentro del GO.
    * Tambien recordar que luego de depurar sus multiplos en los GO, el primo no tendra mas multiplos que le correspondan.

    RESULTADOS.
    NB de 50 digitos:
    22222222222222222222222222222222222222222222222087
    NB de 100 digitos:
    2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222173
    * Repeti los digitos, para ver si fallaba el metodo.

    ◘ Recuerdas este NB para primalidad:
    RSA-2048
    25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357

    ** El metodo indica que es Multiplo de: 39630869

    LIMITACIONES.
    • Para determinar NB con mas de 1.000 digitos, el proceso se demora bastante, porque en la depuracion se toman como primos divisores, los que origina cada PO, donde muchos no son primos, sino multiplos de primos validos, donde sus multiplos ya estarian depurados.
    • Utilizando primos validos de archivo, el proceso se acelera; pero el inconveniente es disponer de demasiados primos en varios archivos.

    ANALIZANDO OPCIONES.
    ◘ CONTROL de PRIMOS MULTIPLOS.
    • Se implementaria un array de control, donde se guardarian los multiplos originados de un primo valido hasta un limite determinado. Donde antes de tomarlo como primo divisor, se verificaria si esta en el array, de ser asi, no depura nada y es quitado del array.
    • El array funcionaria como un vector recursivo o como el metodo de pilas, donde al eliminarse el primero de la pila, se agregaria otro despues del ultimo.
    ◘ VERIFICACION de PRIMOS VALIDOS.
    • Como te habia mencionado, el Metodo por ACTIVACION resulta eficiente para generar numeros primos directamente, utilizando una minima cantidad de primos, donde solo los PO verifican la generacion de primos hasta el limite o rango de 12.000.
    • Implementando este metodo, se tendrian suficientes primos validos para generar hasta un limite o rango muchisimo mas grande y asi continuar hasta n primos.

    ◘ RELACION DIRECTA ENTRE PRIMOS.
    Realizando un analisis para comprender la generacion de multiplos de origen, encontre una Relacion Directa que existe entre primos.
    • Un PO se relaciona con otro PO en cada GO. Esta relacion es diferente en cada GO y en 2 GO la relacion es parcial, hasta donde pude comprender o entender.
    COMO SE RELACIONAN.
    • Se relacionan al compartir un mismo multiplo inicial, desde el cual uno le indica cual seria su siguiente multiplo en otro GO.
    * Si PA y PB son los PO relacionados y MP es el multiplo comun que tienen.
    →Para PA se calcula con PB un factor proporcional (FP) para saber los siguientes multiplos donde:
    FP= PB * FMG
    →Desde MP se van sumando +FP y estos seran los multiplos de PA que estaran en cada GO.
    →Para los multiplos de PB se realiza lo mismo; pero el calculo del factor es con PA
    FP= PA * FMG
    • Tambien es posible calcular directamente MP sabiendo los PO relacionados en cada GO, haciendo una correccion segun la secuencia del GO que corresponda.
    • Obteniendo columna y fila de cada MP, se pueden depurar por posiciones los multiplos de cada primo en su determinado GO.

    ►Hasta aqui puede comprender esta relacion directa entre primos origen (PO) aunque tengo anotado las relaciones para cada GO, creo que debe haber una formula para saber que PO se relaciona con cual PO en cada GO.

    ☼ Mas detalles te los ire comentando….

    • Ireneses Says:

      Hola Victor,

      No he leído tus dos últimos comentarios.

      Creo que sería más fácil leerlos para cualquiera si les dieses otra forma. En vez de marcar los diferentes puntos de tu discurso con símbolos cuya lógica no se entiende (al menos yo no la entiendo) te sugiero utilices números o letras como hace todo el mundo. Por ejemplo si tienes dos puntos que quieres desarrollar, el primero con tres subpuntos y el segundo con dos, puedes ordenar tu discurso de la siguiente manera: 1. 1.1. 1.2 1.3 2. 2.1 2.2. Ya te dije que la comunicación es importante. Hoy en día se publica mucho; cuanto más difícil se lo pongas a un lector menos posibilidades tendrás de que te lean. Al margen de esto, en general me cuesta entender lo que dices.

      Por otra parte, corrígeme pfv sime equivoco y he interpretado mal tu texto, pero afirmas que según tu método el número 39630869 es factor de RSA-2048 ¿ correcto ?. 39630869 es primo, esto es correcto. Que sea factor de RSA 2048 No lo he comprobado, pero dudo mucho que esto sea cierto: como sabes en general los RSA son producto de dos primos de un número de dígitos similar. No sería y el caso si lo que afirmas fuese cierto. Solo esto ya puede quitar las ganas de leer todo lo demás a un experto.

      saludos

  32. Victor Luis Says:

    Holas Ignacio:

    En la forma de expresion para que discutir o excusarme… tienes razon, pues me falta mucho el poder explicar con terminos matematicos; pero en lo futuro me esforzare para ser mas conciso en mis publicaciones.

    a) Estuve revisando la forma sucinta como me indicaste y este seria numero primo:
    3 * 2^155 -1

    Para crear un numero de n digitos, tengo un algoritmo que genera los digitos al azar; pero lo configura para que sea de un grupo origen, donde al convertirlos a la forma sucinta se simplifican tan solo un poco.
    • En la revision, encontre la forma de calcular numeros con n digitos, para que su forma sucinta sea simplificada como el del ejemplo, por lo que estos seran los que determinare su primalidad.

    b) Sobre la Relacion Directa entre primos origen, esta es Total y no parcial como creia, ya que no tome en cuenta la relacion entre un primo origen y sus primos originados, que forman el grupo origen.
    • Justamente esto se da en el 1° multiplo de un primo origen, que estara en el grupo del medio o en el ultimo grupo, solo pueden ser estas dos opciones y deacuerdo esto los diferencie en Grupo-A y Grupo-B.
    • Este dato completa la tabla de relaciones directas entre primos origen, con lo cual desarrollare un algoritmo que genere directamente nmeros primos y tambien depure a la distancia, un numero de n digitos.

    EJEMPLO.
    * Para depurar multiplos en “1 Grupo Origen” donde P1 y P2 son primos origen relacionados y sus valores serian:
    P1= 4
    P2= 9
    FMG= 20 (factor multiplo global)

    El Multiplo Comun (MC) para ambos seria:
    MC= P1 * P2 = 36

    1) DEPURACION del PRIMO ORIGEN P1.
    • En la tabla, como primera cabecera de columna esta el primo origen (P1=4) del cual se originan los primos multiplos: 24, 44, etc

    [ 4 ] [24] [44]

    36 216 396
    116 696 1.276
    196 1.176 2.156
    276 1.656 3.036
    356 2.136 3.916
    436 2.616 4.796
    • Los multiplos de cada primo se indican en las filas de cada columna. Pero debemos comprender que estos multiplos estan distribuidos dentro de 1 Grupo, junto a multiplos de otros primos. Notemos que estos 18 multiplos van del 36 al 4.796, lo que nos indica lo muy dispersos que estan.

    1.1) Para depurar calculamos un factor (FT) en base al primo relacionado, siendo:
    FT = P2 * FMG = 9 * 20 = 180
    con este factor determinamos los primeros multiplos de los primos originados, Sumando el factor al multiplo comun, donde para:
    [24]… 36 + 180 = 216
    [44]… 216 + 180 = 396

    1.2) Desde el primer multiplo determinado de cada primo origen y originados, se depuran sus multiplos adicionando un factor (FS) que se obtiene multiplicando el primo por el FMG.

    Para [4] FS = 4 * 20 = 80
    Multiplos: 36 + 80 = 116
    116 + 80 = 196
    196 + 80 = 276 …

    Para [24] FS = 24 * 20 = 480
    Multiplos: 216 + 480 = 696
    696 + 480 = 1176
    1176 + 480 = 1656 …

    2) DEPURACION del PRIMO ORIGEN P2.
    La depuracion para el otro primo relacionado es similar a lo indicado, con la diferencia de que para calcular el factor (FT) se emplea el primo P1, con el que determinamos el primer multiplo de los primos originados.
    FT = P1 * FMG = 4 * 20 = 80

    [ 9 ] [29] [49]

    36 116 196
    216 696 1.176
    396 1.276 2.156
    576 1.856 3.136
    756 2.436 4.116
    936 3.016 5.096

    ◘ De esta manera se determinan los multiplos de un primo origen y de los que se originan de este, mediante la relacion que se tiene con un primo, para 1 Grupo determinado, donde para otro grupo, estos primos se relacionaran con otros primos origen.

    ► Como veras Ignacio, no solo existe una directa entre un primo origen y los que se originan de este, sino que existe lo que suponia, una relacion entre primos origen, donde ambos se valdrian para determinar todos sus multiplos dentro del grupo origen.
    ► Esto nos demuestra la organizacion precisa que existe en la distribucion de los numeros primos y que no son elementos individuales, sino agrupados y/o generados de los Primos Origen.

  33. Victor Luis Says:

    Holas Ignacio…

    Espero se comprenda la relacion entre primos origen, con el ejemplo que puse, aunque no indique precisamente los primos origen y los factores elementales.

    1. GENERACION DIRECTA de PRIMOS.
    Como te habia mencionado, las relaciones que existen entre primos origen, es completa y exacta, que nos permiten determinar con precision los multiplos no primos en la base de numeros generados de los primos origen.
    1.1. ALGORITMO de GENERACION.
    • El algoritmo no tiene mas de 32 lineas de codigo, los que se pueden aun disminuir.
    • Se indica un Limite Inicial (L1) y un Limite Final (L2), de modo que genere o exporte los numeros primos existentes en ese rango.
    • Aplica la relacion entre primos origen, para depurar todos los multiplos no primos y luego exportar ordenadamente numeros primos válidos y reales, existentes dentro del rango indicado.
    ◘ Te habia comentado anteriormente, que realice un algoritmo que tambien generaba primos directamente; pero la diferencia de tiempos es abismal, pues este tardaba unos 16 minutos para un rango de 2 millones y el nuevo algoritmo lo realiza en 3 segundos, ya que la recursividad es minima, al determinarse precisamente los multiplos a depurar mediante la relacion que existe entre primos origen en cada grupo origen.
    1.2. UTILIDADES.
    Muchos métodos se ven limitados porque necesitan de una base de numeros primos, para determinar realmente si un numero es primo o no, lo cual seria la forma mas precisa o determinista.
    La implementacion del algoritmo, daria solucion a esta necesidad, ya que genera hasta n primos. Lo he probado hasta 999.000.000.000.000 y todos los generados son correctos, comprovandolos con PrimeSieve que es la mejora del algoritmo de Eratostenes.

    2. DETERMINACION de PRIMALIDAD.
    No he avanzado casi nada de lo ultimo que te expuse, salvo que debo admitir un Error garrafal… El RSA 2048 que te dije era multiplo de 39.630.869 no es asi, ya que existia una falla en los calculos segun la proporcion de digitos que se toman, donde al llegar al limite de la variable, se producia un redondeo entre los calculos, dando como resultado final que seria multiplo del primo.
    Con la implementacion del nuevo algoritmo, lo voy a dejar que determine por fuerza bruta y te comento los resultados.
    2.1. ANALISIS de METODOS.
    He estado leyendo sobre Factorizacion y metodos de primalidad, donde estoy implementando el algoritmo de Miller-Rabin como me lo indicaste. Tambien implemente la factorizacion de Fermat para comprenderlo y lo compare con la factorizacion clasica, al disponer hasta n primos, donde hasta numeros de 12 digitos, el tiempo de proceso de ambos es casi el mismo.
    • Analizando esto de la Factorizacion, encontre que es posible determinar el factor primo mucho antes de ni siquiera llegar al numero primo que factoriza al numero.
    • Tu me diras tal vez que eso lo hace el algoritmo de Fermat o Euler; pero contando la recursividad o numero de los calculos que realizan, es mayor cuanto mas grande sea el numero; mientras que el metodo que analizo seria mucho menor, realizando entre 9 y 15 calculos para numeros de 6 a 12 digitos.
    ◘ Lo malo es que no se aplica a todos los numeros y estoy viendo el porqué, como tambien encontrar un factor que supongo debe existir, para tratar aplicarlo al numero antes de evaluarlo con el metodo.
    2.2. CODIFICACION de GRUPOS ORIGEN.
    Es otra idea que me vino a la mente, pues segun mi modo de ver a los numeros primos, que se originan de los primos origen, la Base de Numeros es la misma, repitiendose cada rango, el cual no es una proporcion exponencial de 10 como 100, 1.000, 10.000, etc como te comente en una ocasion, donde se cuestionan que hay tantos primos hasta 100 pero hasta 1.000 la cantidad no es proporcional y no se podria determinar la cantidad precisa hasta un limite n.
    • Al no ser logico aplicar esas proporciones (segun mi modo de ver), pienso usar el factor multiplo global (FMG) para codificar la base de numeros, donde supongo debe haber una secuencia o factor que determine: los multiplos no primos, los posibles factores primos para un numero base o algo que permita determinar directamente si un numero de n digitos es primo o no.
    • Tambien como sabemos, para determinar que un numero es primo, se evalua si es divisible hasta el primo que llegue a la raiz cuadrada del numero. Segun la observacion de una secuencia generada, para la aplicacion de mi metodo, este limite seria menor, el cual se determinaria e iria reduciendo, segun la evaluacion de cada primo divisor sobre el numero base.
    ►Si no me explico claramente, en este ultimo punto, te pido paciencia amigo, que es la idea que tengo y cualquier resultado positivo te lo ire comentando.

    Saludos.

    • Ireneses Says:

      Hola Victor,

      1. Sí era imposible que ese número que decías fuese un factor de un RSA. Creo que es fácil comprender primero por qué eligen 2 factores en vez de, por ejemplo, 10 y segundo por qué eligen que los factores tengan el tamaño que tienen (creo que siempre la mitad de dígitos que el múltiplo).Se trata de no ponerlo fácil, de minimizar las posibilidades de que alguien encuentre un factor…:-).

      Ojo, en general ten cuidado con esto (no por mi) ya que da muy mala impresión. Si no eres capaz de identificar este tipo de errores elementales en tus resultados nadie te tomará en serio.

      2. Sobre factorización, comentas: “Analizando esto de la Factorizacion, encontre que es posible determinar el factor primo mucho antes de ni siquiera llegar al numero primo que factoriza al numero”. No entiendo esto, es ilegible. ¿ Te refieres que no necesitas recorrer toda la lista inicial de posibles factores para encontrar el factor primo ?

      Por mi parte sigo en la misma posición: muy escéptico hasta que no aportes resultados concretos sobre primos de 5*10^6 dígitos o más con una prueba Rabin Miller.

      saludos

  34. Victor Luis Says:

    Holas IGNACIO…

    Sobre el error que cometi, que espero no se vuelva a dar, comprendi lo esencial que es verificar un resultado antes de publicarlo.
    Estuve verificando mis metodos y estan bien, la falla se dio por las variables, lo cual estan controlados segun su funcion.

    1. FACTORIZACION.
    Estuve leyendo sobre Factorizacion de enteros en base a los numeros primos. Como te comente, implemente el metodo de Fermat y ya esta casi terminado el de Miller-Rabin.
    1.1. ALGORITMO de FACTORIZACION.
    Desarrolle un algoritmo para factorizar del modo tradicional, hasta numeros de 30 digitos, debido a las limitaciones de las variables. Para esto implemente mi algoritmo de generacion de primos, en base a la relacion de primos origen, con lo cual pude factorizar estos numeros; pero frente a RSA es muy lento todavia.
    ► Este es mi algoritmo que genera primos:

    Sub GENERAR_NUMEROS_PRIMOS()

    ‘Recibe: NURP–>LIMITE a GENERAR
    ctc = nurp * 0.0336 ‘ Limite para Depuracion
    MGP.CargaVPO ‘ Array de Primos Origen
    fmg=vpo(0,0)

    ‘<>
    For x = 1 To nupo
    pp = vpo(0, x) ‘ Primo Origen Control
    For i = 1 To nupo
    pr = vpo(i, x) ‘ Primo Origen Relacionado
    po = vpo(0, i) ‘ Primo de Grupo a Depurar
    fm = ((pp * pr)-po) / fmg ‘ Posicion del Multiplo

    Do ‘ <>
    For j = fm To ctc Step pr
    vp(j, i) = True:Next j
    pr = pr + fmg ‘ Siguiente Primo
    fm = fm + pp ‘ Multiplo del Primo
    Loop Until (fm > ctc) ‘ Limite de Depuracion
    Next i
    Next x

    ‘<>
    Open “RUTA ARCHIVO.txt” For Output As#1
    For x = 0 To ctc
    For i = 1 To nupo
    Select Case vp(x, i)
    Case False
    Print#1, Str((x*fmg)+vpo(0,i))
    End Select
    Next i
    Next x
    Close#1

    End Sub

    • Como veras, el algoritmo genera numeros primos en el orden que los conocemos, hasta el limite indicado, ni uno mas ni uno menos, que como te dije los corrobore, tanto la cantidad como los numeros con los primos de archivo y con PrimeSieve.
    • Tengo otro algoritmo similar que genera numeros primos desde un limite y para un rango determinado. El complemento que falta, seria para exportar primos como cadenas de texto, a partir de numeros de 18 digitos hasta n.
    • Para acelerar el proceso de factorizacion, implemente un metodo, en base a la relacion entre primos origen, para discriminar directamente los no primos al recorrer la base de numeros que se origina de los primos origen.

    2. ANALISIS SOBRE FACTORIZACION.
    Revisando los metodos y calculos de mis algoritmos, en especial el que genera numeros base de millones de digitos, tiene un metodo que invente para indicarme si estos numeros son multiplos de algun primo, devolviendo un valor parecido a Mod, donde haciendo calculos al azar, vi que a partir de uno de los primos, entre el 19 y el 53, los resultados del calculo daban el factor primo del numero.
    • Explicandome un poco mas… suponiendo que el primer factor primo de un numero es el 16.529, la factorizacion lo iniciamos con el 2, 3, 5, 7, …. donde mi metodo me da un valor tipo residuo de cada operacion realizada con cada numero primo.
    Haciendo un calculo sobre los residuos, a partir del 17 o 19, otras del 29 o 41, desde uno de estos, todos los resultados daban 16.529 hasta llegar a este numero, como indicando de antemano cual seria el factor primo.
    • Puse a factorizar otros numeros y el fenomeno se repetia, por lo que lo anote para analizarlo despues, ya que estaba afinando la factorizacion.
    Esto es lo que te comentaba, si encuentro algo valido, te lo dare a conocer.

    2.1. FACTORES PRIMOS RELACIONADOS.
    Teniendo mi algoritmo de factorizacion, me dispuse a factorizar la base de numeros que se genera de los primos origen hasta un rango de 5.000 y ver si era eficiente, lo cual resulto bien.
    Luego se me ocurrio factorizar los numeros base de cada Grupo Origen, donde observe algo realmente interesante.
    • Cada multiplo no primo se factoriza con el primo origen de su grupo y los primos que le suceden secuencialmente de manera lineal. Osea los multiplos del primer primo origen, tendra como factores a su primo origen y a los demas primos que se aparecen ordenadamente.
    • Me pregunte y qué pasa con los que no son primos, pues estos no aparecen en la factorizacion como nos indica el metodo. Tomando un numero, donde sus factores deberian ser su primo origen y un multiplo no primo, aparecio en la factorizacion otro primo o el factor era solo el primo origen al cuadrado o cubo.
    ►Pero si cada factor primo da un (n mod p) = 0 al realizar la operacion con el multiplo no primo que le tocaba, este tambien daba (n mod np) = 0 lo que me recordo a los factores primos y compuestos que habia leido.
    2.2. PRIMOS RELACIONADOS.
    Hasta ahi era todo claro, ver los factores de los multiplos de los primos origen; pero al factorizar los multiplos de los primos originados, no habia esta secuencia ordenada; pero no me costo darme cuenta de que el orden continuaba mediante los Primos Relacionados, el cual junto a sus primos originados, seran factores primos de los multiplos de los primos del grupo origen con el que se relacionan.
    • No hay donde perderse, todo esta debidamente organizado, si PA y PB son primos origen relacionados, desde ya factorizaran los dos el multiplo comun que comparten.
    ► Luego PA factorizara los multiplos de los primos originados de PB: PB1, PB2, PB3, etc
    ► Al mismo tiempo PB factorizara los multiplos de primos originados de PA: PA1, PA2, PA3, etc
    • Si observamos la factorizacion de los numeros en el orden en que los conocemos, dificilmente se podria apreciar esto, ya que vemos una mescolanza que confunde a cualquiera, ademas como solo tomamos numeros primos como factores primos, donde deberia estar un factor comun, aparecen en su lugar sus factores primos, lo cual termina de mezclar todo y de confundirnos a todos… ahora menos a nosotros amigo.

    ◘ Es lo que pude encontrar, al analizar mis metodos debido a mi error cometido; pero esto demuestra y manifiesta una vez mas, que estoy en lo cierto sobre los esenciales Primos Origen.
    • Respecto al primo de 5*10^6 digitos, generarlo es facil, la cosa esta en verificarlo, donde el test de Miller-Rabin no creo que ayude mucho aparte de que es probabilistico y no determinista.
    • Por otro lado y por ultimo, mi algoritmo esta buscando numeros de la forma 2n-1 pues como me dijiste estaria la posibilidad de factorizarlo con el metodo de Lucas Lhemer del cual se nada. La opcion esta en obtener la formula o algoritmo de factorizacion global de primos origen relacionados.

  35. Victor Luis Says:

    Holas Ignacio:

    De mucho tiempo amigo, espero hayas descansado de mis consultas y chamboneadas como principiante en este mundo perfecto de las matematicas.

    A) CONCLUSIONES PENDIENTES.
    Lamento decirte que enviarte un numero primo valido de 5 millones de digitos, por este momento, no lo sera, porque no considero que sea algo esencial o de prioridad. Se que es necesario para creer en lo que digo; pero si analizamos, de mi analisis e investigacion particular sobre los Primos Origen, termine el algoritmo de tamiz para busqueda hasta n primos y luego a los test de primalidad, generacion casi directa de numeros primos validos, generacion de numeros base hasta 100 millones de digitos que tienen todas las posibilidades de ser primos, al pertenecer a uno de los grupos origen, lo cual supera el concepto de pseudoprimos que tienen todos en la actualidad y lo ultimo que te participe, era sobre la Factorizacion de enteros que es de lo que en breve quiero comentarte.
    Bueno, no hay mal que por bien no venga y en este caso, no hubo nada de mal y todo bien, pues con toda la valiosa informacion que me diste, los consejos asimilados y la comprension de tu parte, es que pude orientarme o mejor dicho me orientaste y ubicaste, para saber donde estaba parado y que caminos poder tomar, donde me atrevi a provarlos; pero por esto, perdi el enfoque inicial de mi objetivo que es mi descubrimiento.

    B) ANALISIS DESARROLLADOS.
    Mi costumbre era participarte de cada avance o desarrollo logrado, que muy pacientemente, hacias notar mis errores y me impulsabas a correr mas y mas.

    b.1.) ANALISIS SOBRE FACTORIZACION.
    Comence con la Factorizacion de Fermat, para aplicar mis primos origen, igualar su eficiencia y luego mejorarlo, lo cual en un principio lo logre; pero llegaban las ideas, las probaba funcionaban, mas ideas y asi…, por lo cual al no tener un resultado claro, ya que aparecian mas datos, es que no publicaba mis comentarios.
    ○ Comprender la Factorizacion desde los Primos Origen, fue facil al inicio, ya que estos estan dados segun la Secuencia de Multiplos Directos(SMD), donde se observa claramente la secuencia ordenada de factores que se dan para los multiplos de un numero primo.
    ○ Determinar los factores de un numero base de uno de los grupos origen, fue complicado, ya que en cada grupo origen que se inicia con un primo origen, se originan de este numeros base con todas las posibilidades de ser primos a menos que sea multiplo de algun numero base anterior de cualquiera de los otros grupos origen.
    Como la SMD distribuye los multiplos de un primo poniendo uno en cada grupo origen sin repetir hasta completar su rango y luego esto se repite proporcionalmente, te daras cuenta que en cada grupo origen si o si tendra todo primo un multiplo, segun su rango o tamaño.
    ○ Ya te habia adelantado, que para determinar estos multiplos en un grupo origen, estan definidas las relaciones entre primos origen, donde ambos interactuan para determinar los multiplos de los numeros base generados de los primos origen relacionados.
    Publique un ejemplo con numeros compuestos, para que comprendas como se efectuaba esta relacion y lo util que era para determinar los multiplos no primos y lo perfectamente organizados y distribuidos que estan tanto primos como multiplos en cada uno de los grupos origen.
    En base a esto, te mostre el codigo de un algoritmo inicial para generar casi directamente numeros primos de forma ordenada segun su orden natural como todos los conocen y quieren.
    ○ Como ves, inicio con la factorizacion, entro a los grupos origen y ahi me pierdo. Lo que falta es la coneccion o relacion de la SMD que indica claramente los factores de cada multiplo de un primo con la generacion de numeros base primos, que es igual para todos. Estos analisis me dieron muchas pautas, por lo que desarrolle varios algoritmos de factorizacion que resultaron eficientes y cada vez mas rapidos, determinando factores de numeros hasta 15 digitos en menos de 10 segundos, donde si su factor es el mismo numero, este seria primo.

    ‘** Cargue en variables datos necesarios:

    ‘→ NB……… numero a determinar primalidad
    ‘→ VPR(10,3).. Array con Primos Relacionados (PR)
    ‘→ NP……… N° de PR cargados en array
    ‘→ UP……… Limite de determinacion (Sqr)

    Do
    For i = 1 To np
    p1 = vpr(i, 1)
    p2 = vpr(i, 2)
    n1 = nb – (p1 * p2)
    If n1 mod p1 = 0 Then →Informe P1 es Factor de NB
    If n1 mod p2 = 0 Then →Informe P2 es Factor de NB
    ‘→ Cargue vpr(i, 1) y vpr(i, 2) siguientes primos originados
    Next i
    Loop Until (p1 > up) Or (p2 > up)
    →Informe que NB es PRIMO y no tiene Factores

    • Este algoritmo lo aplique como un test de primalidad con los factores que se dan para un multiplo segun los primos relacionados y el grupo origen del numero base a determinar si es primo o compuesto.
    • Para obtener los demas factores del numero base, tan solo se hace un arreglo al codigo para que encuentre el siguiente factor, lo cual es mucho mas rapido que encontrar el primer factor, sin importar los tamaños que tengan, que desde luego seran cada vez mas grandes, habiendo factores duros, donde estos son casi iguales en tamaño a la raiz cuadrada del numero base.

    b.2.) ULTIMO ANALISIS SOBRE FACTORES.
    Como te decia, falta la relacion entre la SMD y la distribucion de los multiplos en los grupos origen, con lo que factorizar un numero seria casi de manera directa, sin que la cantidad de digitos que tenga el numero, incremente demasiado el tiempo de determinacion.
    El pseudocodigo del algoritmo que puse en el punto anterior es eficiente; pero por la capacidad de las variables se ve limitado a los 15 digitos, donde ahi si me veo limitado con mi equipo Pentium III de 32 bits.
    ○ La razon de escribir en tu espacio web, era para decirte que luego de haber dejado a un lado mi proyecto por asuntos familiares y de salud, me dispuse a analizar ideas que quedaron pendientes, donde por gracia divina, encontre nuevas relaciones seleccionadas que se dan por parte de los primos relacionados hacia los primos origen de base y principalmente la relacion con la SMD.
    ○ Estos datos y factores, son nuevos para mi y me indican que internamente para cada grupo origen, existe una organizacion friamente calculada, donde hay relaciones directas, complementarias, inversas y retroinversas, segun los grupos origen y los primos relacionados para los primos origen de base.
    ○ Me falta completar la extraccion de datos de los grupos origen y los primos relacionados, ya que en cada uno presenta una afinidad, prioridad y selectividad diferente, que da respuesta a lo que me preguntaba, el por qué un multiplo tiene varios factores de varios primos relacionados, por qué otros tienen varios factores de uno o dos primos relacionados y algunos como los factores duros, se dan para un determinado primo relacionado.
    ○ Esto reducirá significativamente la complejidad y el tiempo de mis ultimos algoritmos, donde como te dije, la cantidad de digitos del numero base, no incrementara casi en nada el tiempo de determinacion, pues de antemano se sabra con que primos evaluar, en que rango o tamaño de primos estara su factor y definir como un algoritmo probabilistico si es primo o compuesto.

    C.) DOCUMENTACION.
    Como te explicaba a un principio, mi prioridad por ahora, es realizar la documentacion de todo lo descubierto para no obiar datos importantes y posteriormente publicarlo en mi ciudad, pais y algun sector web donde como indican, evaluan y revisan el material sobre investigacion en matematicas, antes de publicarlo y certifican la validez o reconocimiento de uno. No se mucho de eso; pero estoy investigando y si me aceptaran como no matematico, pues veo que ese sera un gran limitante en adelante.

    ☼ Eso queria compartir contigo Amigo Ignacio y tras encuentre lo que estoy buscando, te lo hare saber.

    Saludos…

    • Ireneses Says:

      Hola Victor,

      Mucho tiempo sin saber de ti. Tengo acumulados algunos comentarios tuyos que no he tenido tiempo de leer, sólo en diagonal. Comentarte que tras estas lecturas muy superficiales veo un poco de dispersión (sin haber rematado el tema de la primalidad ya te lanzas a la factorización…) pero, en fin, sólo el investigador puede decidir sobre su propio camino.

      suerte y si en algún momento saco tiempo para leer los comentarios acumulados te haré mis seguramente prescindibles aportaciones.
      saludos

  36. Victor Luis Says:

    Hola Ignacio…

    Creo que me estan bloqueando o algo parecido para entrar a tu pagina. Tenia instalado Mozilla Firefox la ultima version 28.0 y nunca cargaba tu pagina, por lo que lo desinstale e instale la version 8.0 que tenia y recien pude acceder y escribirte.
    Ahora, cuando quise responderte, Mozilla Firefox tampoco cargaba tu pagina ni con el link de mi correo de hotmail, por lo que tube que hacer lo mismo, desinstalar e instalar y recien abrio tu pagina… muy extraño no?

    ◘ Sobre tu observacion estas como siempre correcto; pero hasta cierto punto, segun mis conocimientos, ya que primalidad es determinar si un numero dado es primo o compuesto y factorizar seria descomponer un numero en sus factores primos, claro que hay otro tipo de factorizacion; pero si determino que el numero tiene un factor primo que no es el 1 o el mismo numero, estaria determinando que este es compuesto, lo cual nos lleva a la primalidad.
    ○ Sin entrar en un debate donde logicamente no ganare, en la primalidad, ustedes los matematicos usan funciones y calculos, donde si Mod=0 o Mod=1 seria primo o compuesto o se sigue calculando.
    Realizar estas funciones esta fuera de mi alcance, para eso tendria que formarme en matematicas y no creo que ese sea mi objetivo, sino dar a conocer la organizacion de los numeros primos desde los primos origen, donde con lo poco que se de matematicas, pude desarrollar algoritmos de tamiz, de primalidad basico y rudimentario y determinar los factores primos de numeros hasta 15 digitos y tambien generar numeros primos validos en el orden natural como los conocen y algunos piden que sea asi.
    ○ Estoy seguro que cuando los matematicos vean esta organizacion como yo los veo y soy el unico, pues sigo revisando y nadie hace referencia a los primos origen, estoy seguro que desarrollaran formulas que determinen si un numero es primo o no, en un tiempo no logrado con su actual vision.
    Asi tambien, el tema de la Factorizacion sera historia, pues como yo lo veo es muy simple de comprender y no se necesitarian computadoras cuanticas para factorizar numeros grandes.
    Ahora no se si dandose esto, cause un efecto negativo en los que usan la criptografia, lo digo porque en realidad, saber las secuencias, factores y relaciones de los primos origen, me han permitido inmiscuirme en estos temas y problematicas de muchos años para los matematicos.
    Mas aun, con los ultimos analisis que estan en medio desarrollo, que complementan los datos que faltaban para comprender mas a fondo el misterio de los numeros primos, como lo manifiestan en algunas publicaciones.

    ◘ Luego de mi analisis final, voy a profundizar esta diferencia y observacion que me haces, para hablarte con mayor propiedad y no darte nuevos dolores de cabeza, ni agotar tu paciencia.

    “Que te vaya Bien… Amigo…”

    • Ireneses Says:

      Hola Victor,

      Yo ayer no volví a entrar pero hoy he podido entrar sin problemas con chrome y sin identificarme como el editor del blog, es decir como un usuario cualquiera. Pudo ser un problema puntual de wordpress ya arreglado o algún problema exclusivamente tuyo.

      Comentarte que yo no soy matemático. Tampoco estoy planteando esto como un debate. Yo me he limitado a indicarte el estado del arte en primalidad y factorización, es decir los tamaños, medidos en número de dígitos que hoy, con la tecnología actual se consideran inaccesibles y alguna literatura relevante. Si quieres captar la atención de la comunidad deberías, en mi opinión, intentar atacar estos tamaños. Por ejemplo identificar un número primo de 5 millones de cifras que pase el test Miller Rabin y no esté en las listas de primos grandes ya descubiertos (no recuerdo ahora el nombre del investigador que recopila estos). Creo que esto puede estar al alcance de tus medios. Por lo demás, como te comenté ayer, sólo tu, como investigador, puedes determinar tu propia ruta 🙂 y yo limitarme a desearte suerte.

      saludos

  37. Victor Luis Says:

    Holas mi Amigo Ignacio…

    La verdad me pregunto que si no eres matematico y para mi sabes mucho, ¿Qué sere yo? un David que quiere enfrentarse y se devorado por los Goliats en matematicas?

    1. ALTERNATIVA LOGICA.
    Como me indicas, para hacer notar mi descubrimiento, tengo que demostrar dando a conocer primos validos de 5 millones en las paginas o publicaciones referidas a numeros primos y validen el potencial de mis primos origen.
    • Esto ya es posible, pues tengo el algoritmo para generar un numero con altas posibilidades de se primos hasta 100 o mas millones de digitos. Tambien lo puede determinar no probabilisticamente, sino deterministicamente que sea primo si o si con el ultimo algoritmo que publique; pero para ello, como tambien dije, necesitaria un equipo actual como core 5, ya que con mi Pentium III llegue al limite de fiabilidad de 15 digitos para 32 bits, donde el algoritmo determina si es primo o no, en menos de 10 segundos, donde duplicando el numero de digitos, la complejidad no aumenta proporcionalmente o linealmente, sino en 1/3 de lo que lo hacia. Llegar a determinar un numero de 1.000 digitos tardaria una horas, 1.000.000 de digitos unos dias, aplicando solo el algoritmo publicado.
    • La ventaja de mi algoritmo es que se puede reducir a menos de la mitad este tiempo, haciendo algunos arreglos, ya que como dispongo de todos los posibles primos divisores que factorizan un numero, no necesariamente comenzaria del principio, sino intercaladamente principio, final, medio y entre estos, lo que encontrar el factor de un multiplo no primo se hace mas rapido.
    • Como dije, mi unica limitacion de determinar primos de millones de digitos es la capacidad de mi equipo y no asi la efectividad de mi algoritmo. De hacerlo con mi alctual equipo, tardaria de 2 a 3 meses en determinar un primo de 1 millon de digitos, lo cual no lo veo practico.

    2. PRIMOS RELACIONADOS.
    Ya termine de sacar los principales datos de las nuevas relaciones entre primos origen y grupos origen. Analice uno de los 2 grupos origenes que presentan relaciones especiales e identifique la prioridad de primos origen y relacionados que existe en este grupo origen y lo implemente a mi ultimo algoritmo, con lo que el tiempo de determinacion se redujo en un 50% sin hacerle arreglos.
    • Esto es una buena señal, que corrobora lo que dije, que es posible determinar casi directamente la primalidad de un numero, identificando su grupo origen, ya que segun esto las relaciones entre primos origen estan dadas espeficicamente.
    • Explicandome mejor, si tenemos un Numero Base (NB) a determinar si es primo o no, primero determinamos su grupo origen, que si no corresponde a los existente, automaticamente es compuesto. A esto me referia cuando mencionaba de los pseudoprimos, ya que muchos no deberian ser llamados asi, porque nunca de los nuncas podran ser primos y asi de claro es la diferencia en este mundo de los primos. Solo los numeros base oroginados desde un primo origen para pertenecer a un grupo origen, pueden ser primos.
    • Continuando… sabiendo el grupo origen de NB [GO(nb)] las Relaciones entre primos origen esta predeterminada, lo cual nos indica su posibilidad de ser factores o divisores de NB. Esto lo hace el algoritmo publicado anteriormente; pero su complejidad es alta, ya que se tienen que revisar con todos estos primos relacionados para el grupo origen de NB.
    • Con las Nuevas Relaciones que analizo, me indican que para el grupo origen de NB hay prioridad de los primos relacionados a tomar y que seran factores de NB, lo que reduce en un 50% los calculos, reduce la complejidad y reduce el tiempo de determinacion. Con esta informacion, de antemano ya se sabe que primos origen y sus numeros base de su grupo origen, pueden ser factores de NB, con prioridad, donde la determinacion se realiza con estos y no asi con los demas que no seran factores o divisores de NB.
    • La primera aplicacion de estos nuevos datos, ya disminuyó el tiempo de determinacion a casi la mitad, sin hacer arreglos como los que te mencione.
    La cosa no llega ahi, sino que me adelante a compartirte este nuevo avance logrado que indica la gran posibilidad de determinar la primalidad en tiempo polinomial de numeros grandes de muchos digitos.
    No llega ahi, porque hay mas datos analizados para identificar mas precisamente los primos relacionados que seran si o si factores de NB. Ademas falta analizar la primera relacion encontrada de grupos origen con la SMD, que como te dije, esta determina exactamente los factores de NB si es que los tiene.
    ► Como te daras cuenta amigo, estoy abriendo una de las ultimas puertas ocultas del misterioso y hasta ahora, mundo desconocido de los numeros primos.
    ○ Llegar a comprender hasta los primos relacionados fue facil; pero con esta nuevas relaciones, me doy cuenta que en cada grupo origen, existe una organizacion particular, ahora casi comprendida para un grupo origen y me faltan de los demas, donde luego, creo, la evolucion de mi conociemiento sera mayor y que por supuesto, fielmente te los ire compartiendo.

    3. CONSULTA.
    Me intimida tu afirmacion de que no eres matematico, lo que me ubica como un infimo en este mundo casi perfecto; pero ciego (sin ofender) por mas de 100 años.
    3.1. VALIDA MI DESCUBRIMIENTO.
    Te pediria que valides lo que descubri, asi como hablamos de que si estaba descubriendo la polvora o no, donde mi hermano David afirmo que si habia descubierto la polvora y que debo fundamentarla porque de lo contrario estaria haciendo un Homero, que es descubrir algo sin saber como. Tu criterio lo valoro, sea a favor o en contra, para mi es positivo, por eso te lo pido, ya que yo aprendo de mis errores y valoro las criticas constructivas.
    3.2. AVANCES y DESARROLLOS FUTUROS
    En una oportunidad me hablaste de que llegaria a asociarme, yo lo tome sobre el premio de la Electronic Fontier para el primo de 100 millones de digitos, donde incluso mencionaste el proyecto que habria de alcanzar 1 billon de digitos, que no seria gran cosa luego de completar el ultimo analisis.
    ○ Asociarme para compartir lo que se, seria logicamente con un matematico, donde corro el riesgo de que tome la autoria de mi descubrimiento y yo quede a un lado y a la nada de nada, ya que es de suponer, cualquier matematico sabra mucho mas que yo y hara nuevas formulas con esta vision clara de los numeros primos.
    ► Antes de llegar a esto de asociarme, que lo veo lejano segun mi pensamiento… ¿Qué puedo hacer para dar a conocer lo que se de los numeros primos, sin que corra el riesgo de ser plagiado? (a parte de patentarlo)

    ☼ Te expreso mis consultas asi directamente, con la confianza y valoracion que te tengo y como amigo mio que te considero, para que me des tu opinion, siendo consciente de mi atrevimiento de aprovecharme de tu gran apoyo brindado.

    »Que te vaya bien amigo y que Dios te bendiga, hoy y siempre, es mi deseo humilde y sincero»

    • Ireneses Says:

      Hola Victor,

      En realidad, solo se un poco de inglés: ahora está casi todo disponible en internet en esta lengua. Y te confirmo que, como dices, te espera una lucha de tipo David contra Goliath, aunque tu resultado sea correcto, cosa que todavía no me consta🙂. Por eso debes de practicar el arte de la honda: es decir ser capaz de pegar un buen golpe (en sentido figurado) en la cabeza de tu lector. Por eso te digo que conviene que aportes además de tus explicaciones algún resultado espectacular. El resultado espectacular más sencillo que se me ocurre es un primo Rabin-Miller de unos 5 millones de cifras, que no aparezca en los listados ya publicados.

      En resumen, esto es lo que haría yo y con esto contesto a tus pregunta del número 3. Es decir (si no quieres patentarlo),
      –describe tu método, explicándolo claramente (ahora no está nada claro)
      –acompaña la explicación de algún resultado nuevo y espectacular como el que te digo. Si para esto necesitas más poder computacional (ya te dije que lo ibas a necesitar) busca alguien que te lo pueda proporcionar. En alguna universidad de tu país por ejemplo. Dices: “De hacerlo con mi actual equipo, tardaria de 2 a 3 meses en determinar un primo de 1 millon de digitos, lo cual no lo veo practico”. ¿ Cuanto estimas que tardarías con uno de 5 millones de cifras en tu equipo ? ¿ Y con un equipo más potente ?
      –publicalo si puedes en una revista especializada con revisión por pares. Para empezar alguna
      de tu propio país. De nuevo si has obtenido un resultado llamativo, te facilitará la publicación.
      –una vez publicado, traducelo y contacta con especialistas (los Goliat). Ya te he indicado varias plataformas con las que puedes contactar.

      Por mi parte ya te he comentado que hasta que no vea algún resultado llamativo no voy a intentar descifrar tu método, con los datos que me aportas. Soy tu primer mini-goliat enano🙂.

      saludos

  38. Victor Luis Says:

    Holas Ignacio:

    Gracias por tu recomendacion y tan acertado como siempre.

    1. FASE I del ULTIMO ANALISIS.
    Los primeros resultados de este ultimo analisis, revelan que existe un comportamiento particular en cada grupo origen, especialmente en los 2 que creia conflictivo, donde existen mas numeros primos que en los demas y los factores de los multiplos esta dado mas sobre uno de los primos relacionados.
    En los demas grupos origen, la relaciones entre primos origen, determinan los factores de los multiplos que habra, habiendo menos primos validos, lo que sugiere no considerar estos grupos para tener mas posibilidades de encontrar un numero primo de muchos digitos, ya que como sabemos son mas escasos conforme aumenta el tamaño o se avanza en la busqueda.
    • Aplique esta seleccions de relaciones prioritarias, a mi utimo algoritmo, donde la coplejidad se redujo mas del 60-70% haciendo el proceso super rapido, para determinar si un numero es o no primo.
    • Un detalle que olvide mencionarte, es que no se determina para que un numero(NB) sea multiplo de un primo divisor(P) sacando el residuo nb Mod p, sino que, se configura previamente el numero(NB) restando el multiplo comun (MP1) para los primos relacionados, donde evaluando con estos, al mismo tiempo se esta evaluando para muchos primos relacionados a estos, lo cual explica la aceleracion del proceso.
    • Esto tambien, me permite reducir el numero(NB) hasta una cierta cantidad de digitos como por ejemplo de 18 a 15 digitos, donde implementando al calculo la proporcion y el residuo sobrante en la reduccion, la presicion de la determinacion es la misma, permitiendo determinar numeros grandes con el limite de confianza de 15 digitos de Excel.
    • Ahora desarrollare el algoritmo en Delphi, donde la capacidad de las variables son mayores para determinar rapidamente primos hasta 100 digitos y luego pasar a los 1.000 digitos y continuar el incremento, ya que el principio del algoritmo sera el mismo, con la seleccion de las ultimas relaciones entre primos encontradas.
    ► Seguire tu recomendacion amigo Goliat, para ganarme tu credibilidad con el primo valido de 5 millones de digitos a presentarte, sea con mi actual equipo o uno mas moderno. Este sera mi reto a lograr !!!

    2. DOCUMENTACION.
    Ya inicie la documentacion de los resultados descubiertos y encontrados en mi investigacion personal, siendo mas clara y especifica, que la publicacion realizada en Monografias.com
    • Quiero molestarte, para que con tu buen criterio, por favor, puedas darle una revision cuando dispongas de un tiempo y asi poder mejorarlo. Mi interrogante es como hacerte llegar este manuscrito, si es que claro, habra esta posibilidad segun tu tiempo, del cual me has dado mucho y no pretendo agotarlo.
    • Tu respuesta, me indica que si habria descubierto la polvora; pero me falta hacerla explotar para demostrar su validez y existencia, lo cual es presentando un primo de millones de digitos, que seras tu el primero en recibirlo, caso contrario, nos quedamos en la teoria de los Primos de Origen, donde alguien lo hara posible.

    Saludos…

    • Ireneses Says:

      Hola Victor,

      Ojo, no me hagas decir lo que no he dicho🙂. Desconozco tu resultado y por lo tanto no sé si lo que tienes es pólvora mojada (por lo poco que conozco de tu resultado, es lo que creo, si te soy sincero) u otra cosa.

      Para el tema de identificar un primo de 5 M cifras o más antes de iniciar la prueba deberías tener datos sobre cuanto se tarda actualmente, con diferentes medios (pc normal y supercomputador) para identificar primos con este número de cifras. Este sería el benchmark que tu método debería de superar sustancialmente y además ser escalable. Es decir que no tardase una cantidad prohibitiva de tiempo más con un número primo de 100 M de cifras, por poner un ejemplo.

      Si quieres envía tu publicación como pdf adjunto al e-mail que aparece en el about del blog. Solo te pido que las definiciones explicaciones sean lo más claras posibles, con ejemplos numéricos explícitos. Si no están claras vas a perder tu único cartucho con este mini-Goliat y deberás encontrar otro, quizás con menos paciencia todavía…:-). Y te informó que tardaré un cierto tiempo en mirarlo. Y quede claro que al recibirlo no asumo ningún compromiso legal de ningún tipo. Sí me comprometo, moralmente, a no reenviarlo y a no publicar nada sobre ello en un plazo de 6 meses. Luego lo publiques o no quedo libre de publicar sobre este mismo tema (primalidad y/o factorización, que ya te dije que no me interesa especialmente) lo que quiera.

      Finalmente doy por supuesto de que eres consciente de que al publicar tu resultado, en el modo que sea (es decir no solo enviandomelo a mi sino por otros medios), lo estás entregando al dominio público y por lo tanto renuncias a cualquier derecho económico que se derive de el. Me consta que ya conoces la alternativa de la patente pues hemos hablado de ella en este mismo thread.

      Espero que no interpretes estos úlitmos comentario de nuevo como que opino que tu resultado es correcto cuando como ya he repetido en varias ocasiones no lo conozco ya que no entiendo bien tus explicaciones.

      saludos

  39. Victor Luis Says:

    Comprendido mi Maestro Goliat

    Hola Ignacio:

    Tengo clara la figura, pues tu me has enseñado vastante para comprender que no solo es no solo es tener un metodo, sino afinarlo para que este al nivel de los ultimos avances y sea tomado en cuenta.
    Me agrada lo de “polvora mojada” ya que es ese el estado actual de la nueva informacion encontrada y/o descubierta.
    Al respecto, mi intuicion subconsciente me indica que hay algun factor o logica, para determinar la primalidad de un numero de una manera mas directa.
    Revisando el metodo que aplico con los primos relacionados, la determinacion se la puede hacer con solo los factores y los primos de grupo, sin utilizar el numero de muchos digitos, lo que con operaciones pequeñas se determina si es o no primo.
    • Sobre la documentacion, ya tengo desarrollado la estructura de base, el cual lo revisare varias veces antes de enviartelo.
    Puedo agregar ejemplos practicos; pero los factores, secuencias y la tabla de primos origen y relacionados, solo lo incluire cuando logre registrar mi autoria en mi pais o en otro y luego sea de dominio publico. Por eso publico mis codigos, ya que sin estos datos solo sirve como ejemplo, y ademas no hay ninguna publicacion que estudie a los numeros primos desde los primos origen.

    ○ Te deseo lo mejor y dejare de molestarte por un tiempo, hasta que logre los objetivos planteados y sugeridos por tu persona.

    Saludos amigo y suerte en tus proyectos.

  40. Victor Luis Says:

    Hola Ignacio:

    Comentarte que mi busqueda de los ultimos factores o datos, esta un tanto complicado y no se despeja la miopia cientifica. Encontre factores logicos para seleccionar los primos origen relacionados que serian factores o divisores de un numero base multiplo no primo; pero en ciertos rangos no se cumple, lo que me hace pensar que hay algo mas oculto por descubrir.

    1. TEST DE PRIMALIDAD.
    Termine el test de Miller-Rabin; pero determina la primalidad de numeros hasta 15 digitos, debido a la capacidad de las variables.
    • Buscando informacion, encontre los arreglos que se harian para numeros de hasta 1.000 digitos y para testear un primo de 1.000.000 de digitos, se requiere una gran base de archivos de pseudoprimos fuertes, donde para lograr una determinacion confiable (3/4) se precisan sqrt(n) osea la raiz cuadrada de operaciones recursivas lo que seria un numero de 500.000 digitos aproximadamente, teniendo un resultado probabilistico.
    • Lei sobre este tema, el tiempo razonable de los algoritmos probabilisticos vs el tiempo eterno de los algoritmos deterministas, que para 100 millones de digitos, seria como crear 2 o 3 veces el universo. El test de Miller-Rabin no se queda atras, el coste computacional se incrementa por cada nuevo digito, teniendo que realizar operaciones exponenciales y aritmeticas de un numero cada vez mas grande y tener que pasar el test mas veces, para lograr un resultado probable y 3/4 confiable.
    ○ No digo esto, que ya sabes, como una excusa, una limitacion o darme por vencido, sino porque me sugeriste aplicar este metodo y con las disculpas, no lo veo tan practico para determinar el primo de 5 M de dgts. Se que opinas lo contrario y tienes toda la razon, pues para eso existen los algoritmos probabilisticos.
    ►Mi idea descabellada, es aplicar los arreglos a mi algoritmo y implementar el factor logico para seleccionar solo los que pueden ser divisores del numero, lo que reduce la complejidad y los calculos entre un 25% a 50%. Ademas generar primos base, los que se toman como posibles factores o divisores, con un FMG mas amplio, segun lo encontrado en mi ultimo analisis, aplicando 2 metodos, mediante los cuales se evalua la divisibilidad de un numero para varios primos a la vez, con una sola operacion.
    Se que es algo titanico; pero no imposible, al aplicar todos los datos encontrados y algunos que hacen falta, para armar un algoritmo determinista, con una complejidad menor a los probabilisticos, que tras lograrlo, este sera mi examen final, que presentaré al amigo goliat, para que me evalue.

    ☼ No digo mas que… “Sin retos no se logra la evolucion ni la superacion de la especie” (aunque sea de una clase inferior…)

    Saludos Amigo…

    • Ireneses Says:

      Hola Víctor,

      ¿ Cuanto estimas según tus cálculos entonces que puede tardar un Miller Rabin para un número de entre 1 millón y 5 millones de cifras ? Yo voy a intentar averiguar de manera independiente el tiempo teórico y práctico (creo que ya hice una primera averiguación en su momento).

      El caso es que el Miller-Rabin es el que se utiliza para aplicaciones comerciales y por lo tanto diría que su tiempo no debe de ser tan prohibitivo como comentas…pero ahora mismo no recuerdo el número de cifras que se manejan en las aplicaciones comerciales.

      saludos

  41. Victor Luis Says:

    Buenas Ignacio:

    A. Baje una publicacion amplia sobre algoritmos probabilisticos, en el que explican la finalidad de estos, osea realizar elproceso en un tiempo razonable, ya que los deterministas no son eficaces; pero de tiempo largo.
    Ahi tratan del Test de primalidad de Miller-Rabin, utilizado en la actualidad pero no practico para determinar primos de cientos de miles de digitos.
    • La posibilidad esta en los arreglos que se hagan para efectuar calculos con estos numeros grandes y contar con una base fuerte de pseudoprimos, donde para 1 millon de digitos, primero seria buscar pseudoprimos de unos 100.000 a 200.000 digitos para reducir el numero de pasadas, de esto no encontre que cantidad es preciso para tener una eficacia de 3/4.
    • Luego seria implementar funciones o librerias para realizar las operaciones del algoritmo con el numero de 1 millon de dgts y los numeros base pseudoprimos de miles de digitos.
    ► Claro que ya hay esto desarrollado, baje uno en Java; pero la capacidad de una variable double es hasta 300-400 digitos y no para millones, sino estaria todo resuelto.
    Lo que descargue no lo probado, pues tengo que instalar y configurar Java; pero hasta donde lei, lo maximo a llegar seria a estos digitos para tener una probabilidad de 3/4 de que el numero es primo.

    B. Mi propuesta descabellada, surge al revisar los datos encontrados que explico en mi documentacion, donde hay varios elementos para reducir la complejidad a lo minimo, es decir, efectuar los calculos con los primos divisores especificos y seleccionados, lo cual se determinará de antemano, antes de efectuar el bucle de primalidad.
    • Logrando esto no solo se tendria un algoritmo que determine la primalidad en un tiempo aceptable, igual o menor a los existentes, sino que seria un algoritmo determinista.
    • Estoy organizando los datos encontrados para analizarlos en profundidad, es decir determinar su funcion especifica, para luego ver su interrelacion entre estos, que como dije, existe; pero no puedo identificar cual es y en que caso se da. Ademas son varios datos o elementos que intervienen y cada uno se efectua con ciertas condiciones, donde la verdad me hace falta saber mas de matematicas; pero poco a poco lo lograria en no se que tiempo, lo cual lo haria mas rapido cualquier matematico.

    Veamos un Ejemplo:
    999.999.999.999.963.217=(651.563.533) (1.534.769.749)
    • NB es este numero de 18 dgts, F1 es el primer factor primo de 9 dgts y F2 el segundo factor de 10 dgts.
    • Inicialmente calculamos el primo origen de NB que en este caso es el primero, por lo que su Grupo Origen es el primero y lo indicamos como GO(A).
    • Para este grupo origen las relaciones ya estan definidas, las que son: (A-Z) (B-Y) (C-Q) etc
    • Calculando los primos origen de los factores tenemos que F1 es de grupo origen GO(C) y F2 es de grupo origen GO(Q).
    Como vemos, las relaciones indican precisamente que primos divisores seran factores de un numero.
    • Ahora evaluar la determinacion con todos los grupos de primos relacionados, es mucho, por eso busco el factor logico para seleccionar de antemano los GO(C-Q) ya que los demas nunca de los nuncas seran factores o primos divisores de NB.

    Otro Ejemplo:
    999.999.999.999.960.361=(726.351.239) (1.376.744.399)
    • En este caso el Grupo Origen (GO) de NB indica relaciones parciales: (A-D) (B) (C) etc digo parciales porque algunos primos origen no se relacionan o se relacionarian con si mismo.
    • Calculando el origen de los factores F1 es de grupo origen GO(B) y F2 es de grupo origen GO(B).
    Si te das cuenta Ignacio, las relaciones se cumplen exactamente en todos los casos.
    • Complementando, hay numeros que tienen 3 factores primos, los que seran de un grupo de primos relacionados. Si tienen 4 o mas factores, estos seran de 2 grupos de primos origen relacionados, hasta ahora no he visto que sean de 3 grupos relacionados, aunque puede darse, siempre y cuando se quiera determinar todos los factores primos, para lo cual se aplica otro metodo, donde lo mas dificil es encontrar el primer factor y de este el proceso se acelera.

    C. Con lo anterior, seleccionando el grupo de primos origen relacionados donde uno de sus primos base generados sera factor o divisor de NB, la complejidad y la cantidad de operaciones se reduce a mas del 50%
    • Aun asi, la cantidad primos base generados de los primos relacionados es mucha, por lo que se debe tomar los posibles divisores de NB, esto que voy a analizarlo, lo indica la Secuencia de Multiplos Directos (SMD) que como mencione anteriormente esta secuencia determina todos los multiplos de un primo. Por ejemplo, suponiendo:
    SMD=(a, b, c, d, e.. etc)
    • Si NB es un multiplo dado por el elemento “d” de la secuencia, se generarian a partir de este los primos divisores para la determinacion y no asi los demas. Esto es posible, ya que hay una relacion constante entre los multiplos d, d1, d2, d3, …, dn que determina la SMD.
    • Esta segunda seleccion anticipada, reduce la complejidad a menos del 30-40% que con la anterior, se estaria definiendo una cantidad reducida de primos, donde uno sera el divisor si NB es un numero compuesto.
    ►Como veras, hasta aqui hay varios elementos que intervienen y que se debe analizar su interrelacion, de modo que se aplique y cumpla, a los primos relacionados para cada grupo origen y con la SMD.

    D. Finalmente, hay otro metodo para calcular si un primo es divisor de NB. Hasta donde vi la mayoria busca obtener:
    NB Mod p= 0 o tambien
    NB Mod f(p)= 1
    • En mi caso, no utilizo el primo (p) para obtener el residuo, sino una proporcion de p mediante el Factor Multiplo Global (FMG) esperando obtener un residuo especifico obtenido de los primos origen relacionados.
    • De esta manera, realizando un calculo se esta evaluando la divisibilidad de NB para varios primos a la vez, lo que reduce aun mas la complejidad del algoritmo.

    ◘ Espero que esta explicacion no solo sea redundante y mas bien aclare mi anterior comentario, pues como dijiste debo llegar a convencerte de mis numeros primos, explicando con algunos ejemplos, ya que no dispongo de muchos terminos matematicos; pero voy leyendo temas bajados, dandome cuenta que algunos factores se expresan como una funcion, lo que es mas comprensible para los matematicos.

    Saludos y que te vaya bien amigo.

  42. Victor Luis Says:

    Hola Ignacio:

    A. DETERMINACION de FACTORES DUROS
    Realice el primer analisis para comprender mas a fondo sobre los Primos Relacionados, que como te dije, con estos se determinan los multiplos de los primos base generados, que habran en un grupo origen, el cual determina cuales seran estas relaciones.
    • Estos multiplos que se determinan de un primo origen en base a su primo relacionado, serian los factores primos para el multiplo.
    • Encontre un patron logico que seria un nuevo metodo de determinarlos; pero no se aplicaba a todos, por lo que volviendo a analizarlo me di cuenta que solo se aplica para determinar multiplos de primos base generados desde sus primos origen relacionados.

    FACTORES DUROS.
    Estos multiplos resultaron ser, los que como mencionan en otras publicaciones, los “Factores Duros” ya que sus factores primos son casi seguidos. Ejemplo:

    980100000003304620000002785417=(990000000001657) (990000000001681)

    • Estos factores son los mas dificiles de encontrar y son usados en criptografia, hasta donde lei. Tambien vie que habrian los que serian factores re-duros, donde ambos son el mismo numero primo como:
    121= (11) (11)
    Pero son mas faciles de identificar por los algoritmos que evaluan cuadrados.

    ALGORITMO para FACTORES DUROS (FD).
    La metodologia para determinar estos FD se basa en calcular un “Numero Base Reducido” (NBR) el cual se obtiene restando al numero base (NB) que se determina, menos el primer multiplo de los primos origen relacionados. Al mismo tiempo de calcula la “Sumatoria de Primos” (SP), es decir sumar ambos primos relacionados.
    • La determinacion se realiza incrementando el Factor Multiplo Global (FMG) en cada iteracion, con el cual se divide al NBR de cada grupo de primos relacionados y el cociente se compara con la suma del FMG+SP, que de ser iguales, el numero es compuesto y tiene factores duros, que se obtienen con el FMG y los primos origen relacionados.
    • Comparando con los ultimos algoritmos, el tiempo de proceso se redujo a un 32% hasta numeros de 12 dgts y a un 24% en numeros de 18 dgts. Como te daras cuenta, llegue a los 18 digitos, sin hacer ningun arreglo; pero pasando este limite fallaba por la capacidad de las variables.
    • Como el metodo no analiza el residuo (Mod) sino el cociente de la division, fraccione el numero en 2 partes, completando la primera parte con ceros, en igual cantidad de digitos que tenga la segunda parte, lo que seria tener NBR1 y NBR2, restando el primer multiplo a este.
    • Para la determinacion se dividen ambos numeros entre el FMG y se suman los cocientes para realizar la comparacion y funciono muy bien.
    • Con este arreglo, pase de los 18 dgts y llegué hasta los 30 dgts, donde el tiempo de proceso se redujo del 36% hasta el 32%, esto creo, se debe por el incremento de una operacion de calculo.

    MEJORA DEL PROCESO.
    • Determinando el limite del incremento del FMG, modifique el algoritmo, para que evalue al mismo tiempo desde el inicio→adelante y desde el ultimo←atras.
    • Esto de Ultimo quiere decir, que es el ultimo posible primo base divisor del numero, el cual se calcula antes de iniciar la parte de la determinacion. Si se tratara de un numero con factores duros, el tiempo del proceso es inmediato osea 00:00 segundos.
    ► Este metodo sera la primera revision que hará el algoritmo que estoy desarrollando para lograr los objetivos planteados.
    Antes que me cuestiones, te dire que si he verificado su eficacia y funcionamiento en todos los primos relacionados que se dan para cada uno de los grupos origen.

    B. RELACION entre GO, PR y SMD.
    Comence el analisis, para encontrar un factor o relacion logica entre la Secuencia de Multiplos Directos (SMD), los Primos Relacionados (PR) y el Grupo Origen (GO) del numero base a determinar.
    • Como te habia mencionado, con la SMD se determinan los multiplos de un primo que tendra, dentro de los numeros base generados en los grupos origen, donde los factores primos de los multiplos, son los primos origen inicialmente y luego los primos base generados de estos, siguiendo la misma secuencia y orden.
    • Esto se efectua de la misma manera en los multiplos de todos los primos, donde los factores de los primeros multiplos, siempre inician con los primos origen.

    RELACION entre GRUPOS ORIGEN.
    Encontre una Nueva Relacion entre Grupos Origen mediante la cual se puede identificar el elemento de la SMD y con esto logicamente saber el primo que lo factoriza.
    • La Tabla de Primos Relacionados tiene igual numero de filas y columnas, para cada primo origen. Sabiendo el GO del numero a determinar, se ubica la fila, donde estaran los primos relacionados al primo origen que encabeza cada columna, a estos los llamo “Primos Origen de Base” pues no cambian.
    • La nueva relacion es diferente, unos intercambian sus datos, es decir que el uno le sirve al otro y a la inversa. Otros no, sus datos estan en su grupo origen de base. Finalmente algunos, encuentran sus datos en otro grupo, sin serle util a este.
    • Los datos que menciono son primos relacionados de la tabla; pero que corresponden a una columna, donde la secuencia de estos, corresponden exactamente a la distribucion de los multiplos que se determina con la SMD.
    ► Si no me hice entender en esta parte, dame la oportunidad de explicartelo mejor cuando termine el analisis, solo quiero compartirte los avances logrados y el asombro que me causa, ver como estas relaciones estas perfectamente organizadas.
    • Lo ultimo que vi y deje a medias, es que comparando estas 2 relaciones, si no se cumplen, se descartaria el grupo de primos relacionados, donde el los que se cumplen, si o si estan los primos divisores o factores del numero.
    • Como recordaras, mi objetivo es seleccionar anticipadamente el grupo de primos relacionados, donde estaran los primos divisores y/o factores de un numero, para reducir el numero de operaciones y por ende el tiempo de proceso.
    Ahora veo que mi propuesta no es tan decabellada e imposible de lograr, al tener cada vez mas herramientas para desarrollar un algoritmo de caracteristicas determinista, que se ejecute en un tiempo razonable como los algoritmos probabilisticos, ya sea para determinar primalidad o factores primos.

    Saludos.

  43. Victor Luis Says:

    Holas Ignacio…

    No tuve suerte… y mas que suerte, son las pocas herramientas matematicas para realizar un metodo en base a la SMD y las relaciones entre primos y grupos origen.

    1.] MULTIPLOS y FACTORES.
    Reiterando para que me comprendas, con la Secuencia de Multiplos Directos (SMD) determinamos todos los multiplos de un primo, que tendra dentro de los Numeros Base (NB) generados por los primos origen.
    • En esta organizacion, cada multiplo es producto de 2 numeros base. Esto difiere en mucho al criterio del resto del mundo, ya que al descomponer en sus factores primos, pueden haber mas de 2 factores, lo que personalmente considero no es lo real.
    • Al decir que un multiplo es producto de “2 numeros base” es asi; en algunas ocasiones digo “primos base” para indicar que serian como los numeros primos, segun el concepto general que tienen y te mencione.
    ►ENTONCES, todo numero base Multiplo tiene 2 Factores que es un primo y todos los numeros base que se generan secuencialmente desde los primos origen, donde logicamente estos seran, los primeros factores. Veamos un ejemplo:
    ◘ Suponiendo que los primos origen son (a, b, c, d, e) y con la SMD se determinan los multiplos (m1, m2, m3, …, mn) del primo b:

    m1=(b,a) *
    m2=(b,b)
    m3=(b,c)
    m4=(b,d)
    m5=(b,e)
    m6=(b,a1) *
    m7=(b,b1)
    m8=(b,c1) x
    m9=(b,d1)
    m10=(b,e1) x
    m11=(b,a2) *
    m12=(b,b2)
    m13=(b,c2)…

    • Los multiplos tendran como principal factor al primo “b” y el segundo factor seran los primos origen inicialmente y luego los numeros base generados desde origen.
    Indiqué con un asterisco “*” al primer primo origen, para que veas el orden secuencial que existe ininterrumpidamente.
    • Los marcados con una “x” son numeros base que son multiplos no primos; pero son factores, ya que m8 Mod c1=0.
    Estos son considerados como factores compuestos, hasta donde comprendi y son verdaderos pseudoprimos, ya que tienen todas las caracteristicas de un primo.
    Casi la mitad de los pseudoprimos que publican, no son tal, al no originarse de un primo origen o que es lo mismo decir que no pertenecen a un grupo origen. Estos mis pseudoprimos, serian los “pseudoprimos mentirosos o fuertes” que utiliza Miller-Rabin.

    2.] IDENTIFICACION de FACTORES.
    Antes de continuar, definamos un glosario:
    PO….. Primo Origen (para referencia)
    POB… Primo Origen de Base
    PR….. Primo Relacionado al POB
    NB….. Numero Base, numeros originados de un PO, que heredan las caracteristicas de su primo origen, lo cual permite diferenciarlos de los demas grupos origen.
    GO…. Grupo Origen, grupo iniciado por un PO y los NB generados desde este.
    FMG… Factor utilizado para generar NB y aplicado en varios calculos.
    SMD… Secuencia de Multiplos Directos, se aplica a todos los primos, para identificar los numeros base que seran multiplos de este y por lo tanto no primos.

    ◘ Si observamos Ignacio la tabla de multiplos del ejemplo, la SMD determina los multiplos de un primo, donde el segundo factor es un NB primo o no primo, manteniendo la secuencia de origen.
    Cada multiplo es un NB y por lo tanto pertenece a un GO, para lo cual vasta saber con un calculo cual es su PO.

    GO(E) m1=(b,a)
    GO(A) m2=(b,b)
    GO(D) m3=(b,c) …
    ————————
    GO(E) m6=(b,a1)
    GO(A) m7=(b,b1)
    GO(D) m8=(b,c1) …
    ————————
    GO(E) m11=(b,a2)
    GO(A) m12=(b,b2)
    GO(D) m13=(b,c2)…

    • Si nos fijamos el GO de los multiplos, este es diferente a los factores, en algunos casos si se da que es igual a uno de ellos; pero lo interesante, es que el GO de los multiplos se mantiene para cada 2° Factor, segun la secuencia de estos.
    ►De esta manera es que se dan los Primos Relacionados, especificos para cada GO.
    En otras palabras, para un NB numero a determinar, se obtiene su PO y con esto sabemos su GO (que indican lo mismo), donde para este GO las relaciones a darse ya estan definidas, siendo estos un POB y un PR formando un grupo relacionado, por medio de estos se determinan los multiplos del uno mediante el otro y viceversa, multiplos que estaran en el GO de NB que es el numero en evaluacion.

    ◘ Ahora bien, no es suficiente saber que uno de estos grupos relacionados estara el factor de NB, ya que en los grupos de POB y PR se generan muchos numeros.
    Lo ideal es saber anticipadamente en que grupo relacionado estara el primo base que es divisor del numero.
    Esto reduce significativamente la cantidad de operaciones y el tiempo de proceso, en el peor de los casos hasta el 50% y en la mayoría de los casos entre un 20 a 30%.
    • Como me haras notar, de la factorizacion paso a primalidad y viceversa; y es porque casi todo esta relacionado y bien calculado.
    ○ Para determinar una Factor o los dos, solo sabemos del multiplo NB cual es su PO y por ende su GO, con lo cual sabemos los grupos de primos relacionados. Saber cual seleccionar no pude lograrlo hasta ahora; pero si sabemos como fue originado con la SMD, es decir con que elemento, sabriamos directamente cuales son sus factores.
    • Como indicamos en la ultima tabla de ejemplo, la secuencia del segundo factor es el mismo para todos, iniciando con los primos origen y continuando con los NB que se generan de estos. Siendo diferentes el GO de los multiplos, estos tambien se repiten en el mismo orden inicial de los PO.
    ►Esta secuencia de GO de los multiplos, es diferente en cada PO al aplicar la SMD. Aplicando a los NB originados del primo, esta secuencia resulta ser identica, sucediendo lo mismo en los demas PO ó GO.
    GO(E) m1=(b,a) 1° elemento de SMD
    GO(A) m2=(b,b) 2° elemento de SMD
    GO(D) m3=(b,c) 3° elemento de SMD …

    ○ Se tendrá ahora una segunda tabla, para que desde el GO de un numero NB, se determine a que elemento de la SMD corresponde y con esto identificar directamente al PO ó GO donde estará si o si el primo base divisor.
    • Mi dificultad es que solo sabemos el GO de NB y como la logica de una regla de tres, necesitamos saber 2 elementos cualquiera para saber el tercero.

    3.] PROBABILIDAD de SOLUCION.
    Luego de guardar el ultimo analisis donde no tuve suerte, recorde que en uno de los primeros algoritmos de tamiz, como te mencione Ignacio, busca primos desde un limite para un rango definido.
    • En ese algoritmo, solo manejo SMD, Datos Secuencia (DS), mediante la Secuencia de Datos Secuencia (SDS), donde para que sea posible buscar de esta manera, encontre un metodo para calcular todos los datos de los DS, valga la redundancia.
    (*) Para aclararte, la SMD indica el valor numerico de los multiplos y los DS indican las posiciones de los multiplos dentro de los numeros base generados desde origen.
    • El metodo calcula el elemento de los DS que corresponde para un NB, como otros valores que necesita. Como los elementos de los DS son lo mismo (por asi decir) a los elementos de la SMD, ya que ambos se refieren al mismo multiplo, considero que la solucion al problema estaria ya realizado.
    ►Tengo que revisar mis copias guardadas en DVD, pero se que fue uno de los ultimos metodos desarrollados que hace esto, como son bastantes los nuevos datos encontrados con esto de primalidad y factorizacion, no te puedo indicar como es exactamente; pero si decirte que a la vuelta de la esquina esta el nuevo algoritmo.
    ◘◘► Al respecto, debo agradecerte y reconocer tu ayuda, primero por haberme orientado para saber que algoritmo desarrollado tenia, los aspectos importantes a considerar y segundo, porque indirectamente, me has impulsado a entrar a los campos de primalidad y factorizacion, donde los Primos Origen estan presentes, demostrando como es su organizacion y haciendo posible la creacion de nuevos algoritmos para diferentes usos.

    ◘ Antes de emocionarme, evaluare que tanto se reduce el tiempo de proceso, indicando el elemento de la SMD que corresponde al numero base multiplo, comparando el tiempo de determinacion con mis ultimos algoritmos.
    Esto para saber que mas se necesitaria, aparte del metodo, que sé realiza la funcion principal que necesito.

    Bueno amigo, dame unos dias para compartirte los ultimos avances.

    Saludos…

    NOTA. (comentario)
    Un dia te mencione sobre el libro “Los Genios no Nacen, se Hacen” del autor Dr. Camilo Cruz, donde estoy de acuerdo que el subconsciente trabaja mas rapido que el consciente. Antes de dormir, evaluo los analisis realizados, con lo que borbandeo al subconsciente para que trabaje.
    Al siguiente dia, antes de pensar en primos origen, juego “Worms” Armagedon, eso de los gusanitos, donde con varias armas eliminamos a los otros grupos. La cosa es que cada arma quita un tanto de vida y no siempre es igual y hay varios factores que intervienen. Muchas veces aparecen numeros base de primos relacionados y observando estos, me vienen a la mente, ideas que los anoto y en su mayoria me han servido para encontrar factores, secuencias, relaciones y realizar metodos de calculos, que funcionan y realmente no sabria decir exactamente cual es la logica que inicio y me condujo a obtenerlos.
    Por eso siento un poco de envidia, como los matematicos explican que de siendo tal se deduce que esto, que al no ser congruente con algo, se define tal funcion y demas…

    Gracias por tu tiempo y tu espacio web.

  44. Victor Luis Says:

    Hola Amigo IGNACIO…

    [A] ACELERACION del PROCESO.
    Luego de organizar toda la informacion recopilada, no encontre el factor logico que buscaba, por lo que realice un algoritmo para determinar el factor primo de un numero e indique el grupo origen del primo divisor, que corresponde al elemento de la SMD que gereno al numero multiplo.
    Luego modifique un algoritmo, para recibir la posicion del elemento de la SMD y con esto, seleccionar de la tabla de asociaciones definidas, los primos origen relacionados, y evaluar con los primos base de cada grupo origen relacionado.

    * RESULTADOS *
    • Iniciando con numeros de 12 digitos, para comparar el tiempo de proceso de este algoritmo con los ultimos mejorados que tenia, el tiempo de proceso se redujo a un 8% y para numeros de 18 dgts se redujo a un 12%.
    • Fue algo increible, pense que no corria el programa, ya que al presionar el boton indicaba Proceso Terminado y observando, indicaba el factor primo del numero.
    • Los porcentajes los calculos con los tiempos de proceso de ambos algoritmos, de acuerdo a esto, si la determinacion tardaba 1 mes, ahora como maximo tardaria entre 3-4 dias, lo cual no es mucho ya lo se; pero es un gran avance sobre el desarrollo que propuse, de realizar un algoritmo determinista que realice el proceso en un tiempo menor e igual que uno probabilistico.

    [B] IDENTIFICACION de FACTORES de ORIGEN.
    Analizando los datos recopilados y el metodo del tamiz PriBase que son los primeros desarrollos, no podia encontrar el factor logico que indique el elemento de la SMD que genero al numero, debido a mis herramientas matematicas basicas y esencialmente porque son procesos diferentes y analizados en diferentes etapas.
    • Luego de realizar varias tablas de analisis, por fin di con la entrada, viendo que si existe esta relacion indicando el elemento de la SMD que a su vez indica el Primo Origen(PO) y/o Grupo Origen(GO) donde esta el factor primo.

    TEST de PRIMALIDAD?
    La metodologia consiste en que, desde el numero(NB) a determinar, reducir con el Factor Multiplo de cada Primo Origen (PO) y de cada uno de estos, obtener el residuo para el PO.
    • Solo uno da un residuo mod=0 indicando la posicion del elemento de la SMD y el primo origen, donde esta el factor.
    • Al evaluar numeros primos con la metodologia, todos los residuos dan mod0, funcionando como un test de primalidad.
    →Esto se da asi, para los primeros 10.000 numeros aproximadamente, por lo que faltaria implementar a la metodologia las proporciones relativas de numeros grandes.

    [C] SEGUNDO FACTOR LOGICO. (de POSICIONAMIENTO)
    Veamos estas dos tablas de ejemplo.

    ►Tabla-1. Multiplos del primo origen “b” con la SMD:
    [c]→m1=(b,a) * primer grupo de multiplos
    [d]→m2=(b,b)
    [a]→m3=(b,c)
    [e]→m4=(b,d)
    [b]→m5=(b,e)
    [c]→m6=(b,a1) * segundo grupo de multiplos
    [d]→m7=(b,b1)
    [a]→m8=(b,c1)
    [e]→m9=(b,d1)
    [b]→m10=(b,e1)

    ►Tabla-2. Multiplos del primo base “b1” con la SMD:
    [c]→m1=(b1,a) * primer grupo de multiplos
    [d]→m2=(b1,b)
    [a]→m3=(b1,c)
    [e]→m4=(b1,d)
    [b]→m5=(b1,e)
    [c]→m6=(b1,a1) * segundo grupo de multiplos
    [d]→m7=(b1,b1)
    [a]→m8=(b1,c1)
    [e]→m9=(b1,d1)
    [b]→m10=(b1,e1)

    • Como veras Ignacio, las tablas son casi iguales, respecto al orden secuencial del grupo origen de los multiplos y al 2°Factor primo correspondientes para cada uno.
    • Las unicas variaciones serian: * el 1°Factor primo, que es el numero primo sobre el que se aplica la SMD para generar sus multiplos y * logicamente el valor de cada multiplo.
    ◘ Hasta Aqui podemos definir que:
    →El orden secuencial de los 2°Factores se presenta de la misma manera, partiendo desde el primer multiplo generado por la SMD, realizandose esto en todos los numeros primos.
    →El orden secuencial del GO de cada multiplo “[c]→m1” se mantiene en cada grupo de multiplos generados por la SMD, donde el orden secuencial de los multiplos de un Primo Origen, sera el mismo que tendran los numeros base (primos base o multiplos no primos) generados desde este primo origen.

    POSICION del FACTOR PRIMO.
    ►Tabla-3. Primeros multiplos de grupo, del primo base “b1”:
    [c]→m1=(b1,a)
    [c]→m6=(b1,a1)
    [c]→m11=(b1,a2)
    [c]→m16=(b1,a3)
    [c]→m..n=(b1,a..n)
    • Tomando los primeros multiplos de cada grupo generado por la SMD para el primo “b1”, observamos que el GO del multiplo no varia y el 2°Factor para estos multiplos estaria en el grupo GO(a) del primo origen “a”.
    • Esto ya lo podemos determinar y acelera el proceso muy significativamente, al saber donde buscar. Pero no es suficiente, ya que para numeros grandes, la cantidad de primos base de cada grupo, sera tambien grande.
    • Por lo tanto, es preciso determinar la posicion del 2°Factor primo, el cual es proporcional al tamaño del multiplo y a los grupos de multiplos generados por la SMD.

    ○ Aplicando esta informacion, la complejidad del algoritmo seria constantemente =0 ó ninguna, ya que sabemos anticipadamente donde buscar el factor primo y en que posicion esta, sin que importe la cantidad de digitos que tenga el numero a determinar.
    ○ De esta manera, la propuesta que inicialmente parecia descabellada e imposible, no lo es, la unica limitacion sera realizar las operaciones en estos dos pasos, para numeros de millones de digitos. Lo mas importante es que la determinacion sera del tipo determinista, donde si o si, con 100% de certeza y de manera directa, se encuentre el factor primo de un numero.

    • Los nuevos avances y la explicacion del tercer factor, te los comentare en la proxima entrega, estimado amigo Ignacio.

    Saludos.

  45. Victor Luis Says:

    Como estas IGNACIO:

    [1] ALGORITMO DETERMINISTA CASI COMPLETO.
    Ya teniendo la puerta abierta y sabiendo que datos intervienen, realice un analisis sobre estos, para el factor de posicion, por lo que encontre el metodo que realiza los dos pasos.

    METODOLOGIA.
    • Toma el numero y realiza 1 ciclo para evaluar la posicion del elemento de la Secuencia de Multiplos Directos(SMD) el cual corresponde a los Primos Origen(PO), donde si alguno da un residuo mod=0 →se determina el 1° Factor Primo del numero.
    • Cuando encuentra el primer factor, realiza una division y una suma, obteniendose el 2° Factor Primo.

    ►Ejemplo-1: Factorizando numeros de 50 digitos:
    NOTA: El numero inicia con un asterisco ” * ” y termina con el signo “=”, luego entre parentesis los factores primos.
    *99999999999999999999999999999999999999999999960139=(449)(222717149220489977728285077951002227171492204811)
    *99999999999999999999999999999999999999999999960143=(3167)(31575623618566466687717082412377644458478054929)
    *99999999999999999999999999999999999999999999960131=(10957)(9126585744273067445468650177968422013324815183)
    *99999999999999999999999999999999999999999999960133=(07)(14285714285714285714285714285714285714285714280019)(13)(7692307692307692307692307692307692307692307689241)
    *99999999999999999999999999999999999999999999960179=(11)(9090909090909090909090909090909090909090909087289)(19)(5263157894736842105263157894736842105263157892641)(29)(3448275862068965517241379310344827586206896550351)
    *99999999999999999999999999999999999999999999960191=(461)(216919739696312364425162689804772234273318871931)
    *99999999999999999999999999999999999999999999960193=(347)(288184438040345821325648414985590778097982708819)

    ►Ejemplo-2: Factorizando numeros de 100 digitos:
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960007=(71)(140845070422535211267605633802816901408450704225352112676056338028169014084507042253521126760562817)
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960011=(163)(61349693251533742331288343558282208588957055214723926380368098159509202453987730061349693251533497)
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960013=(23)(434782608695652173913043478260869565217391304347826086956521739130434782608695652173913043478259131)
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960017=(12113)(825559316436885990258400066044745314950879220672005283579625196070337653760422686370015685627009)
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960077=(389)(25706940874035989717223650385604113110539845758354755784061696658097686375321336760925449871465193)
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960079=(359)(27855153203342618384401114206128133704735376044568245125348189415041782729805013927576601671309081)
    *9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999960131=(07)(1428571428571428571428571428571428571428571428571428571428571428571428571428571428571428571428565733)(17)(588235294117647058823529411764705882352941176470588235294117647058823529411764705882352941176468243)

    • Algunos factores no son primos; pero si son multiplos no primos o pseudoprimos verdaderos, donde su residuo es mod=0 como los factores primos.
    • Como te habia indicado, el primer limite era llegar a los 100 digitos, por eso no pongo mas y por respeto a la pagina.

    EVALUACION DEL PROCESO.
    Para no estar revisando uno por uno, modifique el programa para que realice la factorizacion dentro de un rango indicado, controlando en cada determinacion el tiempo empleado.
    → Para 50 digitos, tardo de 00:00 a 00:01 segundos.
    → Para 100 digitos, tardo de 00:00 a 00:06 segundos.

    [2] LIMITACION ACTUAL DEL ALGORITMO.
    • Determina entre un 70% a 80% de todos los numeros, que corresponden a multiplos de primos origen.
    • Para multiplos de Primos Base, es decir generados por primos origen, el metodo no determina directamente su posicion desde el primo origen, ya que en cada linea de generacion se incrementa un factor tipo exponencial; pero no me ha sido posible determinarlo exactamente la proporcion, debido a que se debe considerar el elemento de la SMD, el tamaño del numero multiplo y los PO relacionados que son los posibles factores primos.
    →Debo reconocer que me faltan conocimientos, cualquier matematico, ya lo habria resuelto, a mi, estimo me llevara unos dias mas.
    • Para no quedarme con las ganas de mostrarte el avance, implemente un bucle para realizar mas ciclos, correspondientes para evaluar con primos base generados ya que el metodo se aplica de igual manera y asi pude obtener estos factores.
    Por esta razon es que llego a 00:06 segundos, ya que despues, solo tardaria 00:00 a 00:01 segundos.
    • Las siguientes evaluaciones seran hasta 10.000 digitos, donde ojala ya tenga completado el algoritmo para factorizar todos los numeros.

    [3] DATOS COMPLEMENTARIOS.
    • Espero que pronto lleguemos a primos de 5 millones de digitos, mientras desempolvare mi algoritmo que genera numeros base como el que te indique creaba hasta 100 millones de digitos, para modificarlo y exporte en archivo de texto los numeros que sean posibles a ser primos, evaluando con este algoritmo la factorizacion inicial, que de estar completa, creo llevara su tiempo, ya no en la determinacion, sino en los pocos primos que existen en esos limites.
    • Una consulta, sobre RSA, cual su importancia, ya que algunos me dijeron que la seguridad informatica estaria en riesgo; pero no se en que, yo supongo que eso se usa para mensajes ultra secretos y no de uso global. Mientras no guardo nada en mis equipos, por la pirateria informatica, para que le den mal uso a mi investigacion y descubrimiento.
    • De completar el algoritmo, como se tendria que validar, ya que no tendria un referente superior, supongo que con analisis y funciones matematicas; pero para todos los datos encontrados o solo los empleados en este algoritmo ?

    Bueno amigo, ya estare dandote noticias de las evaluaciones, con el actual algoritmo desarrollado.

Terms and conditions: 1. Any commenter of this blog agrees to transfer the copy right of his comments to the blogger. 2. RSS readers and / or aggregators that captures the content of this blog (posts or comments) are forbidden. These actions will be subject to the DMCA notice-and-takedown rules and will be legally pursued by the proprietor of the blog.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: