Ein "Problem":
Nach IF-THEN, FOR-DO, WHILE-DO und Co. wird immer nur ein "Befehl" behandelt.
Oder eben ein ganzer Block (BEGIN-END)
Oder man kann auch mehrere IFs via ELSE verbinden.
Delphi-Quellcode:
var
a, i, n: Integer;
begin
a := 1;
for i := Memo1.Lines.Count - 1
downto 0
do // oder eben mit Pred ... was man halt mehr mag
if TryStrToInt(Memo1.Lines.Strings[i], n)
then
if not Odd(n)
then
Memo1.Lines.Delete(i);
else if n = 1
then
Memo1.Lines.Delete(i);
else // es kann nur noch "if n <> 1 then" sein
begin
a := n
div 2;
// man kann gern auch mit "a := n;" anfangen
repeat
Dec(a);
// a := a - 1;
until (n
mod a = 0)
or (a <= 1);
// auch wenn es keine Primzahl ist, soll irgendwann abgebrochen werden
if a > 1
then // oder "if n mod a <> 0 then" , aber das Andere ist kürzer
Memo1.Lines.Delete(i);
end;
end;