Hola,
Alguien podria proporcionarme un algoritmo potente de generacion de numeros primos???. Preferiria, si fuese en Delphi o en C++.
Gracias
Hola,
Alguien podria proporcionarme un algoritmo potente de generacion de numeros primos???. Preferiria, si fuese en Delphi o en C++.
Gracias
La búsqueda avanzada está para algo...
http://www.hackhispano.com/foro/showthread.php?s=&threadid=5271&highlight=primos
-saludos-
Pues este algoritmo lo desarrolle hace ya tiempo, no se si sirva, o si es seguro esta en c++:
---
#include <iostream.h>
main()
{
int x, y;
for(x=1;x<=1000;x++)
{
if(x==2||x==3||x==5||x==7) cout<<x;
else {
if((x%2)==0) continue;
if((x%3)==0) continue;
if((x%5)==0) continue;
if((x%7)==0) continue;
}
cout<<x;
}}
---
Sobra decir que el 1000 de la linea 5 lo cambias por el numero que quiera.
No me consta que sea seguro, si tiene algu problema notifiquemelo, que yo lo utilizo en algunos de mis porgramas y hasta ahora he tenido razon.
Ese algoritmo tiene un fallo y es el de pensar que utilizando solo el 2,3,5 y 7 en la division te saldran los primos correctos. Ya que como por ejemplo reconoceria el 121 como primo y no lo es ya que sale de multipliacar 11*11 o el 169 que sale de 13*13.
Es bastante rápido, se podrían dar menos vueltas si pusieras que i fuera menor que n^1/2 , habría q usar la math.h. Aquí te lo dejo:
/* PRIMITOS by krego */
#include <stdio.h>
#include <conio.h>
void main()
{
int n;
int i;
char op;
do
{
printf ("\nDame un numero: ");
scanf ("%i",&n);
i=2;
while (n%i != 0 && i<n)
i++;
if (n==i)
{
textcolor (3);
printf ("\n\nEs primo");
}
else
printf ("\n\nNo es primo");
printf ("\n\nMas?");
fflush (stdin);
scanf ("%c",&op);
clrscr ();
}while (op == 's');
printf ("Pulsa tecla para acabar...");
fflush (stdin);
getchar ();
}
-------------------
Compila y funciona perfectamente con Borland C++ 5.01.
Marcadores