Liczby pierwsze - kod źródłowy C++


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
main()
{
clock_t czas_start, czas_koniec, czas_caly ;
int zakres,i,j,x; //deklareacja zmiennych o nazwach zakres, i , j, x
 
cout<<"Podaj zakres: ";//Wypisuje na ekranie podaj zakres:
cin>>zakres;//pobieram wpisane ciag do zmiennej zakres
int tablica_pierwszych[zakres+1];//deklaruje zmienną o nazwie tablica_pierwszych o wielkości zakres plus 1
czas_start = clock(); //pobranie aktualnego czasu
 
 
//-------------poczatek liczenia----------------
for (i=2; i <= zakres; i++) //wykonuję pętlę for od i=2 do i = zakres i po każdym wykonaniu pętli i zwiększa się o 1
{
tablica_pierwszych[i]=1;//wprowadzamy do tablicy tablica_pierwszych[] dla kazdej liczby z podanego zakresu wartosc 1
}
for (i=2; i < sqrt(zakres); i++)//petla od 2 do pierwiastek z podanego zakresu
{
if(tablica_pierwszych[i]==1)//jesli tablica tablica_pierwszych o indeksie i równa jest jeden to wykonaj poniższe instrukcje
{
for (j=2*i; j<=zakres; j+=i) //*w petli od (2 * i) do podanego zakresu tablice tablica_pierwszych[j] oznaczamy wartoscia 0 czyli ze nie jest liczba pierwsza i zmienna j zwiększana jest o j+i
{
tablica_pierwszych[j]=0;//oznaczamy że dana liczba nie jest liczbą pierwszą co wiemy z założenia a nie sprawdzamy
}
}
}
 
for (i=2; i<=zakres; i++) //pętla od i = 2 do i = zakres i po każdym wykonaniu zwiększamy i o wartość 1
{
if (tablica_pierwszych[i]==1) //jesli tablica tablica_pierwszych o indeksie i równa jest jeden
{
cout<<i<<"\n"; //to pokazuj wynik na ekranie enterowany
}
}
 
//-------------koniec liczenia ---------------
delete tablica_pierwszych; //usuwam zmienną tablica_pierwszych
czas_koniec = clock(); //pobranie aktualnego czasu
czas_caly = czas_koniec - czas_start;
cout << "Czas obliczen = " << czas_caly / 1000 << " s, dokladniej = " << czas_caly << " mili \n\n";
system("pause");
 
return 0; //zwraca informacje dla systemu że program zakończył swoje działanie poprawnie (nie zawiesił się)
}