Potęgi, silnie i NWD

06 stycznia 2025

przyklad.txt

Kod

 

 

Zacznijmy od treści zadania:

Na początek zaimportujmy dane 

 

Upewniamy się, że w folderze naszego projektu jest plik, następnie importujemy go używając funkcji with open.

Funkcja with open pozwala działać na pliku bez konieczności zamykania go funkcją close().

Autorzy zadania specjalnie udostępniają nam plik z przykładowymi danymi, byśmy mogli sprawdzić poprawność

działania kodu na mniejszej ilości danych. Wobec tego zaimportujmy plik przyklad.txt,

a dopiero oddając zadanie podmieniamy go na dane ostateczne.

 

Treść pierwszego zadania:

Jak widzisz, autor podaje rozwiązanie dla przykładowego zbioru danych!

Potrzebujemy zatem poza pętlą while dodać licznik, który pozwoli nam zapisać ilość liczb, które są potęgami trójki.

Istotne, aby nie wpisywac go wewnątrz pętli, inaczej nasza pętla po każdej iteracji będzie ZEROWAŁA licznik.

 

 

W tym zadaniu wykorzystuję wiedzę o logarytmach

Przypomnienie: 

Logarytmy możemy czytać na zasadzie: do jakiej potęgi trzeba podnieść a, żeby wyszło b.

 Dzielenie logarytmów:    

W tym zadaniu dzielę logarytmy po to, by uzyskać logarytm o podstawie 3 z liczby z pliku.
Co można zrozumieć przez "do jakiej potęgi muszę podnieść trójkę, by uzyskać liczbę z pliku?"

Idąc tym tokiem rozumowania, chcemy uzyskać liczbę całkowitą, wtedy będzie to oznaczało, że liczba z pliku jest potęgą trójki.
Wobec tego, porównuję nasz wynik z liczbą całkowitą.

Przyjrzyjmy się temu w debbugerze: 

Jak widzimy wynik dzielenia wynosi 6.0, co jest równe 6.

 

Na początku używam też int(line)

Funkcja ta zamienia nam String na Int.

 

Na koniec chcemy, aby przy naszym kolejnym wykonaniu pętli while, pobrała ona nową linię, zapisujemy więc

line = file.readline().strip()

 

 

 

Super! Teraz zapiszmy odpowiedzi do nowego pliku, nazwijmy go wyniki.txt

W pierwszym kroku tworzę nowy plik tekstowy "wyniki.txt" oraz go otwieram.

Następnie zapisuję nasz wynik str() pozwala przekonwertować naszą liczbę na string

A jak coś już otwieramy, to pamiętajmy, by zamknąć ;)

 

Cały kod można pobrać tutaj: 

 

 

Zadanka

Odpowiedzi zapisz w pliku tekstowym "wyniki.txt"

 

 

white sheep on white surface