Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. //sito eratostenesa
  6. //algorytm ktory wyznacza liczby pierwszy z przedzialu liczb naturalnych od 2 do n
  7.  
  8. //napisz funkcje ktora wyznacza i wyswietla liczby pierwsze z przedzialu [2,10]
  9.  
  10.  
  11. void sitoN(int n){
  12. int tab[n+1];
  13. //inicjalizacja tablicy
  14. for(int i=2;i<=n;i++){
  15. tab[i]=i;
  16. }
  17. //indeksy 0 1 2 3 4 5 6 7 8 9 10
  18.  
  19. int wielokrotnosc;
  20.  
  21. for(int i=2;i*2<=n;i++){
  22.  
  23. if(tab[i]==0){//nie eliminujemy wielkrotnosci liczb ktore wczesniej zostaly wyeliminowane
  24. break;
  25. }
  26. wielokrotnosc=i*2; //pierwsza wielokrotnosc
  27.  
  28.  
  29. do {
  30. tab[wielokrotnosc]=0; //skreslanie wielokrotnosci (liczb zlozonych)
  31. wielokrotnosc=wielokrotnosc+i; //kolejna wielokrotnosc
  32. }while(wielokrotnosc<=n);
  33. }
  34. //wyswietlamy liczby pierwsze (to co zostalo z tablicy)
  35. for(int i=2;i<=n;i++){
  36. if(tab[i]!=0){
  37. cout<<i<<" ,";
  38. }
  39. }
  40. }
  41.  
  42.  
  43. int main(){
  44. start:
  45. cout<<"podaj n: "<<endl;
  46. int n;
  47. cin>>n;
  48. sitoN(n);
  49. goto start;
  50. system("pause");
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement