Kezdőoldal » Számítástechnika » Programozás » Programozás tantárgyból lenne...

Programozás tantárgyból lenne szükségem segítségre (Pascal). A feladat : döntsük el egy számról, hogy prím-e! Hogyan oldanátok meg? (Kiegészítések lent)

Figyelt kérdés

A program az eldöntés tételéhez tartozik, while ciklussal kéne megoldani, de valahogy nem látom át, hogy kéne működnie.


Gondolatmenetem: Addig növeljük az i értékét, amíg n szám osztva i-vel 0 maradékot eredményez (mod)


ha az i kisebb mint n szám, akkor van maradék, tehát nem osztható minden n-nél kisebb számmal maradék nélkül.


Ez szinte biztos hogy részben rossz.



Igény esetén forráskód részletet felrakok.


Minden segítséget előre köszönök!



2013. nov. 4. 18:46
1 2
 11/14 coopper ***** válasza:

Üdv.


Alakul, de for ciklussal sohasem lesz hatékony, mivel mindig elfut a ciklus végéig (pedig lehet, hogy nem kell neki mivel osztható 3-mal vagy 5-tel stb, stb).


Tehát ezt while ciklussal kell megoldani ahhoz hogy hatékony legyen, és, hogy ne csak a szám jártassam, ime amit én kreáltam :


Program Primszam;


Uses Crt ;


Var n : longint ;

v : longint ;

i : longint ;

prime : boolean ;


Begin

clrscr ;

write ('Kerem a szamot : ');

readln (n);


v:=trunc (sqrt (n))+1; { Ciklus vegerteke }


prime:=(n mod 2)<>0 ; { leteszteljuk 2-vel valo osztasra }

i:=3; { Haromtol indul a ciklus }

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

prime:=(n mod i)<>0 ; { Ha oszthato i-vel akkor false erteket kap }

i:=i+2; {kettessével haladunk, igy a páros számok kiesnek az osztók közül }

end ;


if prime

then writeln ('Igen')

else writeln ('Nem');


readln ;


End.


Sok sikert.

Üdv.

2013. nov. 5. 08:11
Hasznos számodra ez a válasz?
 12/14 SimkoL ***** válasza:
Köszönöm a válaszodat, bár nem az én problémám a feladat megoldása :)
2013. nov. 5. 10:58
Hasznos számodra ez a válasz?
 13/14 anonim válasza:

var szam,i,db: longint;

begin

readln(szam);

for i:=1 to szam do

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

if db=2 then writeln('Prím') else writeln('Nem prím');

readkey;

end.

2013. nov. 10. 00:53
Hasznos számodra ez a válasz?
 14/14 A kérdező kommentje:
Köszönöm szépen a válaszokat! Sikerült megoldani!
2013. dec. 29. 19:07
1 2

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!