No creo que sea una respuesta válida, el enunciado excluye categóricamente el uso de la división, sin importar el uso de la misma.
No te parece algo así:
Código:
function IsPrime(ANumber : Integer) : Boolean;
var
iDiv,
iTmp : Integer;
begin
Result := True;
for iDiv := 2 to ANumber - 1 do
begin
iTmp := ANumber;
while iTmp > 0 do
iTmp := iTmp - iDiv;
if iTmp = 0 Then {Si el "Resto" es cero}
begin
Result := False;
Break;
end;
end;
end;
Podrías optimizarlo agregando la comprobación del último Bit como te informaron anteriormente, y evitarías un procesamiento innecesario para los números pares.