Kezdőoldal » Számítástechnika » Programozás » Prímszámok kiírása Pascalban?

Prímszámok kiírása Pascalban?

Figyelt kérdés
Nos a kérdés adott, addig eljutottam hogy a beirt számről megmondja h prim-e vagy nem de azt hogy tudom megcsinálni hogy 1 től pl 1000 ig elkezdi "keresni?

2015. aug. 8. 17:02
1 2 3
 11/26 anonim ***** válasza:
n-ig megkeresni a prímszámokat a szitával kéne, mert az midnen szempontból jobb
2015. aug. 8. 18:27
Hasznos számodra ez a válasz?
 12/26 A kérdező kommentje:
nem értelek tesa hogy gondolod?
2015. aug. 8. 18:38
 13/26 anonim ***** válasza:

Itt van SimkoL oldaláról a kód, ezt át tudod írni ahogy szeretnéd...

Köré írsz egy ciklust (nem túl elegáns), vagy külön beírod az egészet függvénybe és a cikluson belül hívogatod a függvényt a ciklusváltozóra...


program primszam;

uses Crt;

var n, v, i : longint;

prime : boolean ;

begin

ClrScr;

Write('Kerem a szamot: ');

ReadLn(n);

v := Trunc(Sqrt(n)) + 1;

prime := (n mod 2) <> 0;

i := 3;

while(prime) and (i <= v) do

begin

prime := (n mod i) <> 0;

Inc(i, 2);

end;

if prime then WriteLn('Prim') else WriteLn('Nem prim');

ReadLn;

end.

2015. aug. 8. 18:50
Hasznos számodra ez a válasz?
 14/26 anonim ***** válasza:
Ez a SimkoL egyébként milyen zorall már, be sem kell lépnie ide, mások megírják helyette a választ. Igazi vezető! :)
2015. aug. 8. 19:19
Hasznos számodra ez a válasz?
 15/26 anonim ***** válasza:

Sokan ismerik itt az oldalon, mert nagyon kedves és segítőkész, egy problémát nagyon sokféle megközelítésből tud bemutatni.

Bár én lennék ennyire profi, mit nem adnék érte... :S

2015. aug. 8. 19:22
Hasznos számodra ez a válasz?
 16/26 anonim ***** válasza:
:D :D :D :D
2015. aug. 8. 19:31
Hasznos számodra ez a válasz?
 17/26 anonim ***** válasza:
#15 én is pozitívan írtam egyébként, semmi gúnyolódás :)
2015. aug. 8. 19:46
Hasznos számodra ez a válasz?
 18/26 tabaki ***** válasza:

Kérdező, nem egészen világos a számomra, mit művelsz a Random() függvénnyel, de ha nem akarod, hogy mindig ugyanazokat a számokat dobja ki, írd be valahová a program elejére a Randomize; utasítást.

Az első három számról biztosan tudod, hogy prím, azokat nyugodtan kihagyhatod a keresésből, tehát a ciklus indulhat a háromnál nagyobb számokkal, ahelyett, hogy minden menetben ellenőrzöd, hogy nem ez a különleges eset áll-e fenn. De ha már ezt a gazdaságtalan megoldást választod, miért csak a kettőt ellenőrzöd? Mellesleg ez is maximum a szándék lehetett, a megvalósítás a tökéletes értelmetlenség határát súrolja, azt is inkább a túloldalról. Először egy dupla ciklusban jó hosszan növelgeted db értékét (ez a ravasz szerkezet biztosítja, hogy semmiképp se lehessen kis szám):


for x:= random (100) to 100 do

        for i:=1 to x do

                if (x mod i)=0 then inc(db);


...Utána pedig megvizsgálod, hogy nem kettő-e véletlenül. Mit tesz Isten, sosem lesz az, pedig akkor és csak akkor írná ki, hogy prímszámot talált. Minden egyéb esetben (tehát az általad kikényszerített törvény értelmében) „nem prím” az eredmény.


Ha rám hallgatsz, előbb megpróbálod megérteni, mire való az összetett utasítások határait megadó begin..end; szerkezet, és csak azután fogsz problémamegoldásba.

2015. aug. 8. 23:39
Hasznos számodra ez a válasz?
 19/26 tabaki ***** válasza:
Ja, amúgy egyet még kifelejtettem: Mivel a kettőn kívül egyik páros szám sem prím, fölösleges mindegyiken végigépkedned, hasznosabb, ha egy páratlan számról indulva kettesével növeled a ciklusváltozót.
2015. aug. 8. 23:44
Hasznos számodra ez a válasz?
 20/26 tabaki ***** válasza:
+ végigLépkedned
2015. aug. 8. 23:44
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!