GRY-Online.pl --> Archiwum Forum

pascal

10.04.2008
19:28
smile
[1]

viesiek [ Legend ]

pascal

mam zadanie zrobić w pascalu program, który z 20 podanych przez użytkownika liczb znajdzie i wypisze tylko liczby pierwsze. no więc mam to zrobić za pomocą tabeli i do momentu, w którym użytkownik podaje liczby jest ok, wygląda to tak:

program liczbypierwsze;
uses crt;
var a:integer;
pierwsze:array[1..20]of integer;
begin
clrscr;
writeln('podaj 20 liczb');
a:=0;
repeat
a:=a+1;
readln(pierwsze[a]);
until a=20;

i teraz jak sprawdzić, które z tych liczb są pierwsze? szukałem w necie, ale nie potrafię tego znaleźć :/
Dodam, że nie może to być jakoś super zaawansowane, mamy raczej poziom bardzo podstawowy, więc niech to się zmieści w jakiejś podstawowej pętli :)
z góry dzięki za pomoc :)

10.04.2008
19:57
[2]

jojko999 [ Generaďż˝ ]

nie znam się na pascalu, ale moim zdaniem można zrobić tak:
jeśli zakres podawanych liczb jest niewielki to robisz pętlę w pętli:
if a:=3
writeln: liczba pierwsza, albo inna komenda oznajmiająca, że to liczba pierwsza
else
if a:=5
writeln: liczba pierwsza
else...
itd.

lub jeśli większy zakres to tworzysz tablicę z liczbami pierwszymi, a potem
if "a" nierówne "którykolwiek pierwiastek tablicy"
writeln: liczba pierwsza

oczywiście musisz to teraz zawrzeć w kodzie

10.04.2008
20:23
[3]

GBreal.II [ floydian ]

ja bym to zrobil inaczej jeszcze:

for a=1 to 20 do
--begin
--pierw := true
--koniec = sqrt(a) <-- tylko, zeby naturalne bylo, nie pamietam jak to jest w pascalu :)
--for i:=2 to koniec do
----begin
----if (a mod i) = 0 then
------begin
------nie jest pierwsza
------pierw := false
------break
------end
----end
--if pierw then (wypisz ze jest pierwsza)
end

jesli nie rozumiesz, to sie pytaj. Moga byc jakies bledy implementacyjne (nie liczac oczywiscie braku wszekiego rodzaju srednikow. Minusy sa po to, zeby bylo wciecia widac.
Mam nadzieje, ze pobieznie idee algorytmu rozumiesz. Jak nie to pytaj :)

To ja tu staram sie algorytm napisac w miare poprawnie, a niektorzy sie Wikipedia wyreczazja :P

10.04.2008
20:26
[4]

Regis [ ]

© 2000-2024 GRY-OnLine S.A.