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 | #include <iostream> #include <math.h> #include <time.h> #include<stdio.h> using namespace std; int main(){ int n =100; bool* firsts = new bool[n]; int i; for( i=0;i<n;i++) firsts[i]=true; for(i=2;i<=sqrt(n);i++){ for(int a=2*i;a<=n;a=a+i) firsts[a]=false; } for(i=2;i<n;i++) { if(firsts[i] == true) cout<<i<< " "; } delete[] firsts ; return 0; } |
Nie mam tutaj dużo do wyjaśniania. Sam algorytm znajdziecie w google bez problemu, nie ma sensu powielać tekstu.
Mateusz Mazurek
Takie zadanie dostałam na kursie ze wstępu do informatyki, dzięki :)
Niepotrzebnie użyty operator new dodatkowo niezwolniona pamięć – Popraw to, bo brzydko wygląda błędny program jako przykład!
Done ;)