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:
Elég megvizsgálni a gyökéig. :)
A te példádat viszont nem értem:
pl gyök(2648)=51.468...
prímosztói: 3, 883.
a 2648-nak se a 3, se a 883 nem osztója.
Gondolom 2649-re gondoltál.
Nos 3 osztója, ami kissebb, mint a 2649 gyöke(51.468... ).
Ez azért müködik így, mert ha van egy x számod, amit osztja az a, akkor ugye x/a=b. Innen a*b=x, de akkor x-t osztja b is,
x/b=a.
A határeset az az, mikor x négyzetszám és a=b. Ilyenkor kell pontosan a négyzetgyökéig elmenni.
Ez a program tökéletesen kell működjön:
var n,i,g,j:integer;
begin
write('Ird be a szamot=');
readln(n);
for i:=1 to n do
begin
g:=0;
for j:=1 to i do
if i mod j=0 then
inc(g);
if g=2 then
write('prim=',i);
end;
end.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!