Dashier führt zu einer Endlosschleife, wenn zahl = Primzahl.
Delphi-Quellcode:
// Überprüfung ob Primzahlzwilling
if zahl >= 1 then
begin
while zahl = Primzahl do
twinprim := (zahl + 2 or zahl - 2 = Primzahl);
end;
In der Schleife werden weder Zahl noch Primzahl verändert, so dass hier nie ein Schleifenabbruch geschehen wird.
Diese Zuweisung wird vermutlich auch nicht das gewünschte Ergebnis bringen:
twinprim := (zahl + 2 or zahl - 2 = Primzahl);
Das könnte eher mit
twinprim := (zahl + 2 = Primzahl) or (zahl - 2 = Primzahl);
erreicht werden.
Auch wenn Du irgendwo noch eine While-Schleife unterbringen musst, erschließt sich mir hier nicht, wie eine sinnvolle Nutzung an dieser Stelle möglich sein könnte.
Delphi-Quellcode:
// Überprüfung ob Primzahlzwilling
if (zahl >= 1) and (zahl = Primzahl) then
twinprim := (zahl + 2 = Primzahl) or (zahl - 2 = Primzahl)
else
twinprim := false;