Hola, bienvenido, el método básico sería algo como lo siguiente:
Supongamos que no es una app de consola y tienes un TEdit llamado Edit1, entonces en el OnClick de un botón pones...
Código Delphi
[-]var
vNumero, vI, vCantidad: NativeInt;
begin
vNumero := StrToInt(Edit1.Text);
for vI := 1 to vNumero do
if (vNumero mod vI) = 0 then
vCantidad := vCantidad + 1;
ShowMessage(vCantidad.ToString);
end;
Ya, eso sería todo.
Sin embargo, si quieres usar parallels para lograr esto, se podría hacer algo así:
Agregar en el uses las unidades...
- System.Threading
- System.SyncObjs
Y escribir en aquél botón:
Código Delphi
[-]var
vNumero, vCantidad: Int64;
begin
vNumero := StrToInt(Edit1.Text);
TParallel.&For(1, vNumero,
procedure(vI: Int64)
begin
if (vNumero mod vI) = 0 then
TInterlocked.Increment(vCantidad);
end);
ShowMessage(vCantidad.ToString);
end;
Espero te sirva, saludos.