Hi!
Ich bin gerade dabei eine Methode zu entwickeln, wie man die Primzahlen von 1 bis 1000000 ausrechnet.
Ich kenne das Sieb des Eratosthenes kenn ich schon, aber ich wollte mal was anderes ausprobieren.
Mein bisheriger Code rechnet wie verrückt aber spuckt nichts aus... woran liegt das?
Delphi-Quellcode:
const N=1000000;
var k,zz,z:longint;
a:array[1..N] of longint;
prim:boolean;
procedure ifprim(zahl:longint);
begin
for k:=1 to z do
begin
if not zahl=k then
if zahl mod a[k]=0 then
prim:=false else
begin
prim:=true;
z:=z+1;
a[z]:=zahl;
break;
// write(a[z]:8);
// z:=z+1;
end;
end;
if prim then
for k:=a[z] to zahl do
begin
if not zahl=k then
if zahl mod k=0 then
prim:=false else
begin
prim:=true;
a[z]:=zahl;
write(a[z]:8);
break;
// z:=z+1;
end;
end;
if prim then
begin
// write(a[z]:8);
z:=zahl;
end;
end;
begin
a[1]:=2; a[2]:=3;
z:=2;
prim:=true;
writeln('Begin?');
readln;
write(a[1]:8,a[2]:8);
for zz:=3 to N do
begin
ifprim(zz);
end;
end.
ich bin echt am verzweifeln...
gruß Teekeks
[edit=Luckie]Rechtschreibfehler im Titel korrigiert. Primzahl schreibt man ohne "ie". Mfg, Luckie[/edit]
[ich auch edit] Ich hab die anderen korrigiert... ^^[/edit]