Przeczytaj
Zadanie 1
Zapisz w wybranej przez siebie notacji (w postaci pseudokodupseudokodu lub w wybranym języku programowania) algorytm, który dla danej liczby x
obliczy sumę jej parzystych czynników pierwszych. Maksymalna liczba punktów za rozwiązanie zadania zostanie przyznana, jeśli algorytm wykona operacji arytmetycznych, wymienionych w uwadze.
W zapisie algorytmu możesz wykorzystać tylko operacje arytmetyczne: dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowite, resztę z dzielenia oraz porównywanie liczb, instrukcje sterujące i przypisania do zmiennych lub samodzielnie napisane funkcje, zawierające wcześniej wymienione operacje.
Specyfikacja problemu:
Dane:
x
– liczba naturalna, której sumę parzystych czynników pierwszych należy obliczyć
Wynik:
wynik
– suma parzystych czynników pierwszych liczbyx
Rozwiązanie
Rozwiązanie zadania przedstawimy w postaci pseudokodu, ponieważ na egzaminie maturalnym można korzystać z pseudokodu lub z wybranego języka programowania: C++, Java lub Python.
Jedynym parzystym czynnikiem pierwszym danej liczby może być 2, ponieważ 2 to jedyna parzysta liczba pierwsza.
Jeżeli liczba x
jest nieparzysta, to nie ma żadnych parzystych czynników pierwszych, zwracamy więc 0. Jeżeli liczba x
jest parzysta, to dzielimy liczbę przez 2, aż stanie się niepodzielna przez 2. Na koniec zwracamy wynik, czyli liczbę 2 pomnożoną przez liczbę jej wystąpień jako czynnika pierwszego danej liczby.
Zauważenie, że jedynym parzystym czynnikiem pierwszym danej liczby może być 2, ułatwia rozwiązanie zadania.
Za przedstawione rozwiązanie dostaniemy maksymalną liczbę punktów, ponieważ jego złożoność wynosi .
Przedstaw rozwiązanie zadania w postaci programu napisanego w wybranym języku (C++, Java lub Python).
Słownik
algorytm zwany również sekwencyjnym; kroki algorytmu następują po sobie; wykonanie jednego kroku powoduje przejście bezpośrednio do kolejnego; nie określa się w nim żadnych warunków
algorytm warunkowy; algorytm, w którym może występować kilka ciągów działań; po spełnieniu lub niespełnieniu danego warunku następuje wybór jednego z ciągów działań
jedna z metod zapisywania algorytmów; pseudokod jest zapisem uniwersalnym, w przypadku którego nie używa się słów kluczowych języków programowania; nie istnieją sformalizowane reguły zapisu pseudokodu – ma być on przejrzysty i zrozumiały, a do jego odczytania nie może być wymagana znajomość języków programowania