Pchełki Python: Euler #16

https://xpil.eu/7MCHW

Dziś króciutko: rozwiążemy sobie Problem Eulera numer 16: policzymy sumę wszystkich cyfr tysięcznej potęgi dwójki.

Dwójka podniesiona do tysięcznej potęgi to 10 715 086 071 862 673 209 484 250 490 600 018 105 614 048 117 055 336 074 437 503 883 703 510 511 249 361 224 931 983 788 156 958 581 275 946 729 175 531 468 251 871 452 856 923 140 435 984 577 574 698 574 803 934 567 774 824 230 985 421 074 605 062 371 141 877 954 182 153 046 474 983 581 941 267 398 767 559 165 543 946 077 062 914 571 196 477 686 542 167 660 429 831 652 624 386 837 205 668 069 376.

A oto i kod:

liczba, suma_cyfr = 2 ** 1000, 0
while liczba:
    suma_cyfr += liczba % 10
    liczba = liczba // 10
print(suma_cyfr)

Nie ma tu za wiele do omawiania, ale ponieważ nie mam chwilowo bardziej ekscytujących tematów...

liczba, suma_cyfr = 2 ** 1000, 0

Tutaj obliczamy sobie tysięczną potęgę dwójki (operator ** to w Pythonie potęgowanie), a także ustawiamy początkową sumę cyfr na zero.

while liczba:

Dopóki liczba jest dodatnia... (a tak naprawdę: dopóki liczba jest różna od zera...)

    suma_cyfr += liczba % 10

... zwiększ sumę cyfr o wartość ostatniej cyfry ...

    liczba = liczba // 10

... po czym urżnij tę cyfrę (operator // to dzielenie całkowite)

print(suma_cyfr)

A na koniec wyświetl wynik.

Ile wyszło?

Wyszło 1366. Tyle wynosi suma cyfr tysięcznej potęgi dwójki. Możesz teraz spokojnie iść spać 😉

https://xpil.eu/7MCHW

4 komentarze

      1. a czy programiści opracowują algorytmy matematyczne do swoich programów, czy robią to matematycy? Chodzi mi o skomplikowane zagadnienia związane np. ze statystyką, prawdopodobieństwem itp.

        1. To zależy. Jeżeli chodzi o algorytmy rozwiązujące dobrze znane, ugruntowane zadania, wówczas najlepiej wziąć gotową bibliotekę zamiast pisać własną od zera. Natomiast jeżeli pracuje się w jakiejś bardzo specyficznej, niszowej branży, czasami zachodzi potrzeba opracowania własnego algorytmu. Mi się zdarzyło raz czy drugi wymyślić coś oryginalnego, ale na ogół czerpię garściami z gotowców (StackOverflow to najlepsze źródło wiedzy).

Leave a Comment

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.