Informatică, întrebare adresată de lavinianiorba51, 8 ani în urmă

Buna ! Imi poate explica si mie cineva cum de functioneaza codul ista :
astebin.com/TAhsPwCS
Cerinta : Sa se afiseze primele n numere prime ( n citit de la tastatura ). Nu inteleg foarte bine ce se intampla la al doilea for . Multumesc !


robertanisoiu: Unde pot vedea codul?
whow: pastebin.com/TAhsPwCS
whow: nu a pus p-ul

Răspunsuri la întrebare

Răspuns de robertanisoiu
0

Răspuns:

Explicație:

In primul for ia numerele de la 1 la n

In al doilea for vede daca un anumit numar, in speta i, are divizori. Daca are divizori inseamna ca de la 2 pana la \sqrt{i} se va gasi un numar astfel incat restul impartirii sa dea 0(de aceea conditia de oprire este j*j<=i)

Răspuns de whow
0

Răspuns:

for (int j=2;j*j<=i && ok;j++)

j=2

2 este primul nr prim

  • deci for-ul porneste de la 2 pana cand j*j o sa fie mai mic ca i si in acelas timp ok=adevart
  • verifica daca i este prim prin if(i%j==0) daca este adevarata ok care l-am presupus adevarat devine fals si se opreste (aici verifica daca i mai are alti divizori in afara de el si 1)
  • daca if nu gaseste nici un divizor continu in al doilea if
  • al doilea if verifica daca ok e inca adevarat adk daca i e prim

sper sa nu fi scris cv gresit :P


whow: la a doua bulina am dat de inteles altcv if-ul verifica da i mai are si alti divizori daca .....==0 iseamna ca mai are si altii si i-ul nu mai este prim
Alte întrebări interesante