Creare una lista di numeri primi in C/C++ di Cristiano Armellini

Creare una lista di numeri primi in C/C++ di Cristiano Armellini
L'algoritmo che proponiamo per costruire una lista di numeri primi è molto semplice:si considera
una lista di numeri dispari e per ogni numero dispari si cerca un divisore che sia compreso tra 3 e la
parte intera della radice quadrata dello stesso numero. Se si trova un divisore vuol dire che quel
numero non è primo altrimenti è primo e quindi viene stampato.
L'applicazione si compone di un file eseguibile scritto in C++ e di un file .bat che manda in
esecuzione l'applicativo e crea un file di testo dove viene dirottato l'output ovvero la lista dei primi
listaprimi.cpp (listaprimi.exe dopo la compilazione)
#include <stdio.h>
#include <iostream.h>
#include <math.h>
int main(int argc, char *argv[])
{
const long m = 30000 ;
long lista[m];
long i, j;
long temp;
for(i=5; i <=m; i=i+2)
lista[i] = i;
for(i=5; i <=m; i=i+2)
{
for(j=3; j<= int(sqrt(i)); j=j+2)
{
if (fmod(i,j) == 0) {
lista[i]=0;
exit;
}
}
}
for(i=5; i <=m; i=i+2){
if (lista[i] != 0) {
cout << lista[i] << "\n";
}
}
Mentre il file .bat (primi.bat) contiene semplicemente la seguente riga di codice:
listaprimi.exe >> lista.txt
di Cristiano Armellini ([email protected])