Egyszerű Pascal program; valaki meg tudná nézni, hol hibáztam?
A prímszámokat kell kiíratnom n-ig egy régi könyv folyamatábrája alapján. Jelenleg a prímszámok közé ír pár nem prímet is. Így néz ki most:
begin
write('Melyik termeszetes szamig irjuk ki a primeket? ');
readln(n);
write('2 3 ');
p:=5;
q:=3;
for k:=3 to n do begin
repeat p:=p+2;
until(p/q<>int(p/q)) and (p<=n);
repeat q:=q+2;
until sqr(q)>p;
write(p, ' ');
end;
readln;
end.
Az alapjának ennek kéne maradni, hogy az ábrára hasonlítson. Minden segítséget nagyon köszönök!:)
@#20: „Basic és a Pascal után jött a C++”
Aha, így már világos, miért pendülök veled egy húron ebben a rigolyádban.
Igen, úgy legalább lefordul, de hibás működést eredményez:
ugyanis az 1 nem prim, a 2 viszont az.
Itt egy kísérletem a függvény cizellálására, direktíva nélkül, a klasszikus értékvisszaadással:
#26: Bocsáss meg, de nem.
Ezt a függvénynek kell tudnia eldöntenie, ugyanis az a feladata, hogy eldöntse egy számról, hogy prim-e.
Másrészt elegendő a keresett szám négyzetgyökének alsó egészrészéig vizsgálódni - lásd:
Khm, az utóbbi alighanem ebben a formában érhető tetten a függvényben:
v := Round(Sqrt(n))
SimkoL egyébként a hasonló kérdéseknél mindig fölhívja rá a figyelmet, fura lenne, ha pont most feledkezett volna meg róla.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!