Según mi conocimiento, he visto las únicas funciones siguientes que producirán primos para $n$ :
-
$n^2 - n + 41$
-
$n^2 + n + 41$
Por supuesto, ambas funciones fallan para $n = 41$ debido a la representación polinómica. He intentado preparar una función que genere primos continuamente. Como sabemos que los primos son infinitos pero hay un espacio entre ellos y es difícil producir todos los primos en una sola función o algoritmo. Por favor, mira mi algoritmo, que creo que, producirá sólo primos.
#include <iostream> int testForPrime (int n) { int p, i; p = 1; i = 3; int result = n; while (i < result) { result = n / i; if (n == i * result) { p = 0; i = n; } i = i + 2; } return (p); } int main (int argc, char * const argv[]) { int p, i, n; i = 3; n = 5; std::cout << "Initiating prime number generation sequence...\n\n1:2\n2: 3\n"; while (1) { p = testForPrime (n); if (p == 1) { std::cout << i << ": " << n << "\n"; i++; } n = n + 2; } return 0; }
Para una mejor comprensión, por favor, vea el archivo de mi fuente en haciendo clic en EDITAR de mi post.
Me gustaría saber lo siguiente:
- ¿Es cierto mi algoritmo o puede necesitar más modificaciones?
- Si restringimos el número de primos menores que x en función de los ceros de la función zeta El primer término es $x/\log(x)$ . La hipótesis de Riemann equivale a la afirmación de que los demás términos están acotados por una constante veces $\log(x)$ veces la raíz cuadrada de $x$ . La hipótesis de Riemann afirma que todos los ceros "no evidentes" de la función zeta son números complejos con parte real $1/2$ . ¿Cómo?
Si se puede dar un poco más de claridad en esta segunda parte, voy a escribir otro algoritmo para la justificación de este segundo problema.