Hogy lehet ezt a programot egyszerűbben megírni pascalban?
Egy olyan programot írok, amely megvizsgálja az adott számról, hogy prím-e. Ahhoz, hogy ne kelljen külön felsorolni így a prímeket:
a - változó;
(a mod 3=0) or
(a mod 5=0) or
(a mod 7=0) or stb.
hogy lehetne egyszerűbben, pl. csak felsorolni a prímeket?
Előre is köszönöm a választ, ja és itt a teljes programkód:
Mit nem értesz ebből? Az első tökéletes megoldást adott.
Indítasz egy ciklust 2-től a vizsgált szám-1-ig, mivel az 1 mindig osztója egy számnak ahogy, maga a szám is.
Ha a vizsgált számot osztod a ciklusváltozóval és a maradék nulla, akkor azt jelenti, hogy osztódik egy 2-től és önmagán kivűli számmal, vagyis a szám _NEM_ prímszám.
Ilyenkor kiléptet a ciklusból a breakkel. Egyébként ha gond nélkül végigfutott a ciklus, akkor _Prímszám_.
Oh bmeg... Ez pont megvan de nincs kedvem átmászni linuxra...
Na mind1 azért felvázolom a megoldást nagy vonalakban.
readln(szam);
prim:=true;
for i:=2 to szam div 2 do
if szam mod i=0 then prim:=false;
if prim=false then writeln('nem prim') else writeln('prim');
nagyonszépen köszönöm a válaszokat, a felsőt most próbálom értelmezni....
igazából csk fél év mulva fogjuk tanulni a suliba, de én már nem bírtam ki, ugyhogy még elég kezdő vagyok...
szólok ha megvan :P
A 2. válaszoló vagyok!
Igazából elég a számot a négyzetgyökéig megnézni. Ez gyorsít rajta valamit.
for i:=2 to trunc(sqrt(szam)) do...
azt amugy a matektanarom is mondta, hogy a számnak az osztóit elég a négyzetgyökéig megvizsgálni, de ez nem igaz.
pl gyök(2648)=51.468...
prímosztói: 3, 883.
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!