Ciąg Fibonacciego to ciąg liczb naturalnych określony rekurencyjnie w sposób następujący: , , a każdy następny element ciągu jest sumą dwóch poprzednich, czyli:
Binarny fraktal Fibonacciego to dwuwymiarowa tablica zawierająca w kolejnych wierszach binarne zapisy kolejnych liczb Fibonacciego, gdzie każde zero w zapisie zastąpiono białym kwadratem, a każdą jedynkę czarnym kwadratem (p. rysunek). Wszystkie binarne zapisy powinny składać się z jednakowej liczby cyfr, czyli do zapisów krótszych niż najdłuższy należy dodać zera wiodące.
R1QF6YcRDtv1x
Napisz program, który znajdzie wszystkie liczby pierwsze wśród liczb , , ... , . Zapisz każdą z liczb w osobnym wierszu pliku pierwsze.txt.
Do oceny oddajesz:
plik pierwsze.txt zawierający odpowiedź (wszystkie liczby pierwsze wśród liczb , , ... , , każda z nich zapisana w osobnym wierszu);
plik(i) z komputerową realizacją zadania (kodem programu).
Zadanie zostało opracowane przez CKE i pojawiło się w zbiorze zadań maturalnych z informatyki. Cały zbiór można znaleźć na stronie internetowej Centralnej Komisji Egzaminacyjnej.
Przetestuj działanie programu dla danych z treści zadania. Twój program powinien wypisywać rozwiązanie na ekran, a nie zapisywać je do pliku.
1
Pokaż ćwiczenia:
21
Ćwiczenie 1
JĘZYK C++
Ri5uxeScrr1oY1
Przykładowe rozwiązanie:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny cmath zamknij nawias ostrokątny.
Linia 3. using namespace std średnik.
Linia 4. bool pierwsza otwórz nawias okrągły long a zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. if otwórz nawias okrągły a znak równości znak równości 1 zamknij nawias okrągły return false średnik.
Linia 6. if otwórz nawias okrągły a znak równości znak równości 2 kreska pionowa kreska pionowa a znak równości znak równości 3 zamknij nawias okrągły return true średnik.
Linia 7. for otwórz nawias okrągły long p znak równości 2 średnik p otwórz nawias ostrokątny znak równości sqrt otwórz nawias okrągły otwórz nawias okrągły double zamknij nawias okrągły a zamknij nawias okrągły średnik p plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. if otwórz nawias okrągły a procent p znak równości znak równości 0 zamknij nawias okrągły return false średnik.
Linia 9. zamknij nawias klamrowy.
Linia 10. return true średnik.
Linia 11. zamknij nawias klamrowy.
Linia 13. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 14. int F1 znak równości 1 średnik.
Linia 15. int F2 znak równości 1 średnik.
Linia 16. int pomoc średnik.
Linia 17. for otwórz nawias okrągły int i znak równości 3 średnik i otwórz nawias ostrokątny znak równości 40 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. pomoc znak równości F2 średnik.
Linia 19. F2 znak równości F1 plus F2 średnik.
Linia 20. F1 znak równości pomoc średnik.
Linia 21. if otwórz nawias okrągły pierwsza otwórz nawias okrągły F2 zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. cout otwórz nawias ostrokątny otwórz nawias ostrokątny F2 otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 23. zamknij nawias klamrowy.
Linia 24. zamknij nawias klamrowy.
Linia 25. return 0 średnik.
Linia 26. zamknij nawias klamrowy.
21
Ćwiczenie 2
JĘZYK JAVA
R1CFmL062CZWP1
Przykładowe rozwiązanie:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static boolean pierwsza otwórz nawias okrągły long a zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. if otwórz nawias okrągły a znak równości znak równości 1 zamknij nawias okrągły return false średnik.
Linia 4. if otwórz nawias okrągły a znak równości znak równości 2 kreska pionowa kreska pionowa a znak równości znak równości 3 zamknij nawias okrągły return true średnik.
Linia 5. for otwórz nawias okrągły long p znak równości 2 średnik p otwórz nawias ostrokątny znak równości Math kropka sqrt otwórz nawias okrągły otwórz nawias okrągły double zamknij nawias okrągły a zamknij nawias okrągły średnik p plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. if otwórz nawias okrągły a procent p znak równości znak równości 0 zamknij nawias okrągły return false średnik.
Linia 7. zamknij nawias klamrowy.
Linia 8. return true średnik.
Linia 9. zamknij nawias klamrowy.
Linia 11. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. int F1 znak równości 1 średnik.
Linia 13. int F2 znak równości 1 średnik.
Linia 14. int pomoc średnik.
Linia 15. for otwórz nawias okrągły int i znak równości 3 średnik i otwórz nawias ostrokątny znak równości 40 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. pomoc znak równości F2 średnik.
Linia 17. F2 znak równości F1 plus F2 średnik.
Linia 18. F1 znak równości pomoc średnik.
Linia 19. if otwórz nawias okrągły pierwsza otwórz nawias okrągły F2 zamknij nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 20. System kropka out kropka println otwórz nawias okrągły F2 zamknij nawias okrągły średnik.
Linia 21. zamknij nawias klamrowy.
Linia 22. zamknij nawias klamrowy.
Linia 23. zamknij nawias klamrowy.
Linia 24. zamknij nawias klamrowy.
21
Ćwiczenie 3
JĘZYK PYTHON
R1FbC6zHGC6jO1
Przykładowe rozwiązanie zadania:
Linia 1. import math.
Linia 3. def pierwsza otwórz nawias okrągły a zamknij nawias okrągły dwukropek.
Linia 4. if a znak równości znak równości 1 dwukropek return False.
Linia 5. if a znak równości znak równości 2 or a znak równości znak równości 3 dwukropek return True.
Linia 6. p znak równości 2.
Linia 7. while p otwórz nawias ostrokątny znak równości math kropka sqrt otwórz nawias okrągły a zamknij nawias okrągły dwukropek.
Linia 8. if a procent p znak równości znak równości 0 dwukropek return False.
Linia 9. p plus znak równości 1.
Linia 10. return True.
Linia 12. F1 znak równości 1.
Linia 13. F2 znak równości 1.
Linia 14. for i in range otwórz nawias okrągły 3 przecinek 41 zamknij nawias okrągły dwukropek.
Linia 15. F1 przecinek F2 znak równości F2 przecinek F1 plus F2.
Linia 16. if pierwsza otwórz nawias okrągły F2 zamknij nawias okrągły dwukropek.
Linia 17. print otwórz nawias okrągły F2 zamknij nawias okrągły.