Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Divisors(num, n: Integer): Integer;
- var
- a: array of Integer;
- h, i, t: Integer;
- begin
- h := Trunc(sqrt(num));
- SetLength(a, h * 2);
- t := 0;
- for i := 1 to h do
- begin
- if (num mod i = 0) then
- begin
- a[t] := i;
- a[t + 1] := num div i;
- t := t + 2;
- end
- end;
- if (h * h = num) then
- t := t - 1;
- SetLength(a, t);
- BubbleSort(a);
- //ClearSameIntegers(a);
- //t := High(a);
- t := t - 1;
- case n of
- 0: begin
- Result := t + 1;
- exit;
- end;
- 2: begin
- SetLength(a, t);
- t := t - 1;
- end;
- end;
- h := 0;
- for i := 0 to t do
- h := h + a[i];
- Result := h;
- end;
- var
- i: Integer;
- begin
- Writeln('Begin');
- for i := 1 to 10 do
- Writeln(IntToStr(i) + ': ' + IntToStr(Divisors(i, 0)) + '; ' + IntToStr(Divisors(i, 1)) + '; ' + IntToStr(Divisors(i, 2)) + '.');
- Writeln('End');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement