Sabiranje, množenje i
prebrojavanje u ciklusu
Zadatak 1:
Izračunati N!
(faktorijel od N - računa se kao 1*2*3*4*...*N).
Rešenje:
n=int(input('unesite broj'))
f=1
for i in range(2 , n+1):
f=f*i
print( 'n!=', f)
Primer izvršavanja:
unesite broj 14
i= 2 f= 1 * 2
i= 3 f= 2 * 3
i= 4 f= 6 * 4
i= 5 f= 24 * 5
i= 6 f= 120 * 6
i= 7 f= 720 * 7
i= 8 f= 5040 * 8
i= 9 f= 40320 * 9
i= 10 f= 362880 * 10
i= 11 f= 3628800 * 11
i= 12 f= 39916800 *
12
i= 13 f= 479001600 *
13
i= 14 f= 6227020800 *
14
n!= 87178291200
Svaki prolazak kroz ciklus znači da se tekuća vrednost proizvoda f množi tekućom
vrednosti brojača i ponovo dodeljuje promenljivoj f.
Promenljiva f koja se
menja u ciklusu, pre ulaska dobija vrednost 1. To se mora uraditi jer
ako početna vrednost proizvoda bude 0, dalje u ciklusu se sve množi nulom. Tada nam je rezultat 0 iako program
naizgled deluje ispravno.
Zadatak 2.
Odrediti sve delioce prirodnog broja n i prebrojati koliko
ih ima.
n=int(input('Unesite broj'))
print('Delioci broja ',n, ' su:')
s=0
for i in range(1,n+1):
if n % i= =0:
print(i)
s=s+1
print( ‘i ima ih’ , s)
Promenljiva s nam je brojač, pre ulaska u ciklus smo je
postavili na nulu. Svaki put kada se u ciklusu naiđe na delilac broja n, brojač
uvećavamo za 1.
Zadatak 3.
Napisati program koji štampa sve trocifrene brojeve koji su
deljivi sa 3, nisu deljivi sa 7, a
poslednja cifra im je neparan broj i izračunati njihov zbir.
Rešenje:
s=0
for n in range (1,1000):
c=n%10;
if n%3 ==0 and
n%7!=0 and c%2!=0:
print(n)
s=s+n
print('suma je',s)
Cifru jedinica c dobijamo kao ostatak deljenja broja n sa 10
Zadaci za vežbu:
- Izračunati proizvod recipročnih vrednosti brojeva u intervalu od n do m
- Izračunati sumu korena brojeva od n do m.
- Ispisati koliko ima brojeva deljivih brojem x u intervalu od n do m. (x, n, m su ulazni podaci)
Нема коментара:
Постави коментар