Matura informatyka zbiór zadań. Zadanie 63 - Ciągi zerojedynkowe

Kliknij i wspomóż mnie :)

Python

W pliku ciagi.txt w oddzielnych wierszach znajduje się 1000 różnych ciągów zerojedynkowych, każdy o długości od 2 do 18. Napisz program(-y), który pozwoli rozwiązać poniższe zadania.

Odczytywanie danych

Nasz kod musimy zacząć od wczytania i zinterpretowania danych z pliku.

W kolejnych linijkach odczytywane są dane oraz usuwane są białe znaki.

Lista z liczbami (series) dostępna jest z poziomu całego kodu.

Ciąg dwucykliczny

Ciągiem dwucyklicznym będziemy nazywać taki ciąg zerojedynkowy w o długości parzystej, który składa się z dwóch fragmentów `w_1` oraz `w_2`, `w=w_1w_2` takich że `w_1 = w_2`. Podaj wszystkie ciągi dwucykliczne zapisane w pliku ciagi.txt.

Dla każdego wyrazu na początek sprawdzam czy jego długość jest liczbą parzystą. Dla tego, że tylko taki ciąg będzie można podzielić po równo na 2.

Następnie za pomocą list-comprehensions porównuję 1 i 2 połówkę ciągu.

Bliźniacze jedynki

Podaj liczbę ciągów z pliku ciagi.txt, w których nie występują obok siebie dwie jedynki.

W tym kodzie musimy sprawdzić, wszystkie litery (cyfry) z każdego ciągu.

Dla tego w pętli dla ciągu (serie) zagnieżdżam dodatkowo pętlę dla litery (i).

Jeżeli kod napotka taki etap że po 1 będzie również jeden to za pomocą break'a przejdzie do następnego wyrazu.

Jeżeli jednak nie znajdzie takiego układu i osiągnie koniec wyrazu to zwiększy licznik (counter) o 1.

Dzielniki pierwsze

Następne zadanie będzie wymagać wyszukania dzielników, które są liczbami pierwszymi.

Na początku potrzebna nam będzie funkcja, która odpowie czy funkcja jest liczbą pierwszą.

Po tym musimy także sprawdzić czy liczba składa się tylko z dzielników pierwszych.

W tym kodzie iteruję przez wszystkie dzielniki pierwsze mniejsze lub równe naszej liczbie (number).

Jeżeli taka liczba jest podzielna całkowicie to sprawdzam czy pozostałość jest również pierwsza.

Liczby półpierwsze

Liczbą półpierwszą nazywamy taką liczbę, która jest iloczynem dwóch liczb pierwszych. Podaj, ile ciągów z pliku ciagi.txt jest reprezentacją binarną liczb półpierwszych. Dodatkowo podaj największą i najmniejszą liczbę półpierwszą w zapisie dziesiętnym.

Mając wcześniej napisane funkcje wystarczy tylko już sprawdzić, które liczby spełniają warunek oraz wypisać największą i najmniejszą.

Uruchamiamy kod i voilà!

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.