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
'; var blob = new Blob([data], {type: 'text/xml'}); var filename = 'gcd.fprg'; if (window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveBlob(blob, filename); } else { var elem = window.document.createElement('a'); elem.href = window.URL.createObjectURL(blob); elem.download = filename; document.body.appendChild(elem); elem.click(); document.body.removeChild(elem); window.URL.revokeObjectURL(blob); } });