/* Ricerca numeri primi - Dario Tratzi ©199x-26 */ #include #include #include main() { unsigned long i, f, n=5, t; FILE *ptr; printf ("1 OK\n"); printf ("2 OK (unico tra i numeri pari)\n"); printf ("3 OK\n"); printf ("5 OK (unico tra i numeri divisibili per 5)\n"); printf ("7 OK\n"); ptr = fopen ("primi.txt", "w"); t = clock(); for (i = 11; i < 1000000; i+=2) /* escludi i numeri divisibili per 2, ovvero che terminano per 0,2,4,6,8 (tutti i pari) */ { printf ("%lu ", i); fprintf (ptr, "%lu ", i); for (f = 3; f < i; f+=2) if (i % f == 0) /* se trova un divisore esce dal ciclo */ break; if (i == f) /* se non trova un divisore il numero è primo */ { n++; sin ((double) i); printf ("OK %lu %%\n", f/2, i); fprintf (ptr, "OK %lu %%\n", f/2, i); } else { printf ("%lu %%\n", ((f-3)/2)+1); fprintf (ptr, "%lu %%\n", ((f-3)/2)+1); } } printf ("Numeri primi totali : %lu\n", n); printf ("Tempo impiegato : %lu s", (clock()-t) / CLOCKS_PER_SEC); fclose(ptr); }