четвртак, 26. март 2020.

PROGRAMSKA PETLJA FOR (2)


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.

 Rešenje:

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:

  1. Izračunati proizvod recipročnih vrednosti brojeva u intervalu od n do m
  2. Izračunati sumu korena brojeva od n do m.
  3. Ispisati koliko ima brojeva deljivih brojem x u intervalu od n do m. (x, n, m su ulazni podaci)




Нема коментара:

Постави коментар