Stroustrup "Programowanie.[...]" - zadanie "Sieve of Eratosthenes"
Ostatnio zmodyfikowano 2023-09-21 17:11
JollyJ Temat założony przez niniejszego użytkownika |
Stroustrup "Programowanie.[...]" - zadanie "Sieve of Eratosthenes" » 2023-09-20 15:56:06 Cześć! :) Przerabiam podręcznik "Programming. Principles and Practice Using C++" autorstwa Bjarne Stroustrup. W rozdziale czwartym zamieszczono następujące zadanie: "13. Create a program to find all the prime numbers between 1 and 100. There is a classic method for doing this, called the "Sieve of Eratosthenes." If you don't know that method, get on the web and look it up. Write your program using this method." Proszę o sprawdzenie mojego kodu, ponieważ output nie jest do końca poprawny. int main() { vector < int > primes; int number = 2; while( number <= 100 ) { primes.push_back( number ); ++number; } int position = 0; while( position < primes.size() ) { int i = 2; while( primes[ position ] * i <= 100 ) { remove( primes.begin(), primes.end(), primes[ position ] * i ); ++i; } ++position; } position = 0; while( position < primes.size() ) { cout << primes[ position ] << '\n'; ++position; } } Output: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 Z góry dzięki za pomoc. :) |
|
pekfos |
» 2023-09-20 16:56:26 std::remove() nie ma sposobu żeby elementy faktycznie usunąć. Ten algorytm nie powinien w ogóle tak wyglądać. |
|
JollyJ Temat założony przez niniejszego użytkownika |
» 2023-09-20 23:29:32 Dziękuję. Czy ktoś mógłby mnie naprowadzić, jak wykonać to zadanie? Szukałam rozwiązań w Internecie, ale bazują one na konceptach, które nie zostały jeszcze wprowadzone w podręczniku. Póki co poznałam jedynie pętle while i for, iteracje z if i switch i wektory. |
|
pekfos |
» 2023-09-21 17:11:36 |
|
« 1 » |