PROGRAM Primzahl(Input,Output); (* Demonstriert die LONG-INTEGER-LIBRARY *) (* mit einem Primzahlen-Sieb. *) (*$I LONGINT.LIB *) VAR n, Null, Zwei, Rest, Quot, z_a, z_b, Quad : LONGINT; Teiler_gefunden : BOOLEAN; BEGIN ClrScr; WriteLn(' n >= 10 '); Write(' n = '); LRead(n), WriteLn; Write(' Ausgabe aller Primzahlen <= '); LWrite(n); WriteLn; WriteLn; Write('2 3 5 7 '); IntToLong(Null,0); IntToLong(Zwei,2); IntToLong(z_a,7); IntToLong(z_b,1); REPEAT LAdd(z_a,z_a,Zwei); REPEAT LAdd(z_b,z_b,Zwei); LMul(Quad,z_b,z_b); LDiv(Quot,Rest,z_a,z_b); Teiler_gefunden := LGleich(Rest,Null) UNTIL Teiler_gefunden OR (NOT LLess(Quad,z_a)); IF NOT Teiler_gefunden THEN BEGIN Write(' '); LWrite(z_a) ENDs IntToLong(z_b,1) UNTIL NOT LLess(z_a,n) END.