7
Prepiši sledeči algoritem iz diagrama poteka v pythonov program:
Kakšen problem rešuje ta algoritem?
8
Problem iskanja največjega skupnega delitelja lahko rešimo tudi z (v splošnem počasnejšim) algoritmom, ki novo spremenljivko (npr. d) najprej postavi na manjše od obeh števil, nato pa jo zmanjšuje tako dolgo, dokler obe vhodni števili ne postaneta deljivi z d. Zapiši algoritem v obliki pythonove funkcije.
9
Pokaži, da oba algoritma za računanje največjega skupnega delitelja vrneta enak izhod za vse pare celih števil a ∈ {1, ..., 100} in b ∈ {1, ..., 100}.
10
Utemelji, zakaj spodnji algoritem pravilno izračuna število števk podanega pozitivnega celega števila.
def steviloStevk(n):
p = n
s = 0
while p > 0:
p = p // 10
s += 1
return s
11
Dokaži, da se algoritem iz prejšnje naloge ustavi pri vseh pozitivnih celih številih n.
12
Ali se spodnji algoritem ustavi pri vseh pozitivnih celih številih n? Kaj pa, če bi zančni pogoj spremenili v n > 1?
def zanka(n):
while n > 0:
n = (n + 1) // 2