Hi Folks!
ich hab in Computertechnik in der schule die aufgabe bekommen ein Prog zu schreiben, das die Primzahlen bis 20000 ausrechnet und anzeigt. ich darf die zahlen 2/3/5/7 als teiler vordefinieren, ab da muss alles andere selbst ausgerechnet werden. die primzahlen sollen in einem array gespeichert werden.
ich hab mir gedacht, dass ich eine variable(x) erhöhe und diese durch die im array gespeicherten zahlen teile und dann auf einen rest prüfe (mit "mod"). wenn der rest dann =0 ist wird die zahl im array gespeichert, und neu begonnen. das so lange bis x=20000.
geht denn das so wie ich es mir gedacht habe oder habt ihr eine leichtere (muss aber auch leicht verständlich bleiben ich hab TP erst seit einem halben jahr), Lösung?!
Schonmal Danke im vorraus für eure Mühen...
Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge
uses crt; {Hannes Zechmann, 16.01.2004}
var p:array[1..20000] of boolean;
startzahl, anfangszahl, endzahl, teiler, seite, seiten, zeilen: integer;
begin
repeat
clrscr;
write('Anfangszahl: ');
readln(startzahl);
write('Endzahl: ');
readln(endzahl);
until startzahl
for anfangszahl:=startzahl to endzahl do
begin
p[anfangszahl]:=true;
for teiler:=2 to anfangszahl div 2 do
begin
if (anfangszahl mod teiler)=0 then
begin
p[anfangszahl]:=false;
end;
end;
if p[anfangszahl]=true then
write(anfangszahl:8);
end;
readln;
end.
dank eines freundes gehts jetzt, auch wenns ne ganz andere methode is!