Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- //sito eratostenesa
- //algorytm ktory wyznacza liczby pierwszy z przedzialu liczb naturalnych od 2 do n
- //napisz funkcje ktora wyznacza i wyswietla liczby pierwsze z przedzialu [2,10]
- void sitoN(int n){
- int tab[n+1];
- //inicjalizacja tablicy
- for(int i=2;i<=n;i++){
- tab[i]=i;
- }
- //indeksy 0 1 2 3 4 5 6 7 8 9 10
- int wielokrotnosc;
- for(int i=2;i*2<=n;i++){
- if(tab[i]==0){//nie eliminujemy wielkrotnosci liczb ktore wczesniej zostaly wyeliminowane
- break;
- }
- wielokrotnosc=i*2; //pierwsza wielokrotnosc
- do {
- tab[wielokrotnosc]=0; //skreslanie wielokrotnosci (liczb zlozonych)
- wielokrotnosc=wielokrotnosc+i; //kolejna wielokrotnosc
- }while(wielokrotnosc<=n);
- }
- //wyswietlamy liczby pierwsze (to co zostalo z tablicy)
- for(int i=2;i<=n;i++){
- if(tab[i]!=0){
- cout<<i<<" ,";
- }
- }
- }
- int main(){
- start:
- cout<<"podaj n: "<<endl;
- int n;
- cin>>n;
- sitoN(n);
- goto start;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement