Du könntest einmal die Delphi-Tags (Römerhelm) benutzen, dann ist der Code besser lesbar.
wurzel:=sqrt(n);
würde ich vor die Schleife setzen, denn das muss nur einmal gesetzt werden (ist aber nicht das Problem).
teiler:=zahl;
muss
teiler:=1;
sein, da sonst in der Zeile mit mod immer direkt 0 rauskommt
habe es jetzt so wie unten ohne teiler:=1