ALGORYTM SPRAWDZANIA LICZB PIERWSZYCH
WERSJA 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int n, i, j, L, p, ilosc=0; long czas;
int main(){
printf("podaj N: "); scanf("%i", &n);
int *tab=new int[n+1];
for(i=1;i<=n;i++) tab[i]=0; //wyzerowanie tablicy
czas=clock();
for(i=2;i<=n;i++){
p=1;
for(j=2;j<i && p==1;j++) //szukamy podzielnika liczby
if(i % j == 0) p=0; //jeżeli reszta z dzielenia i/j=0
if(p==1) {ilosc++; tab[i]=1;} //sprawdzanie czy pętla zakończyła się przed czasem.
} //koniec for
czas=clock() -czas; //od aktualnego czasu odejmuje poprzedni
printf("razem liczb pierwszych %i czas=%i\n", ilosc, czas);
for(i=2;i<=n;i++) if(tab[i]) printf("%i, ",i);
printf("\n");
system("PAUSE"); return 0;
}
WERSJA 2
//for(i=2;i<=n;i++) if(tab[i]) printf("%i, ",i);
WERSJA 3
for(j=2;j<(i+1)/2 && p==1;j++) //szukamy podzielnika liczby + polepszenie szybkości obliczania
WERSJA 4
//Pominiecie sprawdzania liczby 2 i zwiększenie szybkości liczenia
if(n>=2) {ilosc=1; tab[2]=1; }
for(i=3;i<=n;i+=2){
for(j=3;j<(i+1)/2 && p==1;j+=2) //szukamy podzielnika liczby + polepszenie szybkości obliczania
WERSJA 5
//odkomentarzowanie for
WERSJA 6
//korzystamy z pierwiastków żeby czas zmniejszyć obliczeń
#include <math.h>
for(j=3;j<=(int)sqrt(i) && p==1;j+=2) //szukamy podzielnika liczby + polepszenie szybkości obliczania
WERSJA 7
//zakomentarzowane for
for(j=3;j<=(int)sqrt(i) && p==1;j+=2) //szukamy podzielnika liczby + polepszenie szybkosci obliczania
...
Super_Informatyka