Ennek a programnak eltudná valaki magyarázni a menetét?
Figyelt kérdés
A program az hogy kiírja az első 100 prím számot ,azonban nem értem a program menetét.
int main()
{
int i,j,odb;
for(i=1;i<=100;i++)
{ odb=0;
for(j=1;j<=i;j++)
if(i%j==0) odb++;
if(odb==2) printf("%d ",i);
}
return 0;
}
2016. okt. 28. 02:50
1/6 anonim válasza:
1-től 100-ig végig oszt maradékos osztással minden számot.
Ha 2 darabot talált csak 0 maradékkal, akkor prímszám. (saját magát és az 1-est.)
2/6 anonim válasza:
Egyébként felesleges körök vannak benne. A belső ciklusban felesleges 100-ig menni eleve, célszerű lenne 2-től kezdeni, és már akkor ki lehetne lépni, amikor 1-et talált.
3/6 anonim válasza:
Bocsánat hajnal van és még nem aludtam :)
Most nézem, hogy nem 100-ig megy, hanem i:j <= szám-ig a belső for.
De a 2-től indulás és i:j < szám esetén már az első találaltnál ki lehetne ugrani.
4/6 anonim válasza:
5/6 A kérdező kommentje:
Köszönöm a segítséget,azonban én tudom azt nem tudom ,hogy miért kell bele 2 for ciklus és ,hogyan fut le az egész de azt tudom,hogy maga a program mire való és ,hogy mit miért növel illetve oszt.
2016. okt. 28. 11:05
6/6 anonim válasza:
Ha tudod, hogy mit mivel növel és miért, akkor azt is tudod szerintem, hogy miért kell kettő for ciklus.
A külső 1-től 100-ig végig megy a számokon, a belső pedig az egyes számokon megy végig osztót keresve.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!