Задание

Требуется написать программу, которая среди целых чисел ищет число с простым количеством различных делителей \(количество делителей — простое число\) и максимальной суммой цифр числа.

Выберите функции, которые могут быть использованы при решении этой задачи.

  • function f1\(n: Integer\): Integer;
    var
    count, i: Integer;
    begin
    count := 0;
    for i := 1 to Trunc\(Sqrt\(n\)) do begin
    if n mod i = 0 then begin
    count := count + 1;
    if n div i <> i then begin
    count := count + 1;
    end;
    end;
    end;
    f:= count;
    end;
  • function f2\(n: Integer\): Boolean;
    var
    i: Integer;
    begin
    for i := 2 to Trunc\(Sqrt\(n\)) do begin
    if n mod i = 0 then begin
    f:= False;
    Exit;
    end;
    end;
    f:= True;
    end;
  • function f3\(a, b: Integer\): Integer;
    begin
    if a > b then
    f:= a
    else
    f:= b;
    end;
  • function f4\(n: Integer\): Integer;
    var
    p, digit: Integer;
    begin
    p:= 0;
    while n <> 0 do
    begin
    digit := n mod 10;
    p:= p + digit;
    n := n div 10;
    end;
    f := p;
    end;
  • function f5\(n: Integer\): Integer;
    var
    p, digit: Integer;
    begin
    p:= 1;
    while n <> 0 do
    begin
    digit := n mod 10;
    p:= p * digit;
    n := n div 10;
    end;
    f := p;
    end;
  • function f6\(n: Integer\): Integer;
    var
    count, i: Integer;
    begin
    count := 0;
    for i := 1 to Trunc\(Sqrt\(n\)) do begin
    if n mod i = 0 and i mod 2 = 0 then begin
    count := count + 1;
    if n div i <> i then begin
    count := count + 1;
    end;
    end;
    end;
    f:= count;
    end;
  • function f7\(n: Integer\): Boolean;
    var
    p, digit: Integer;
    begin
    p:= 0;
    while n <> 0 do
    begin
    digit := n mod 10;
    p:= p + digit;
    n := n div 10;
    end;
    if p mod 2 = 0 then f := True
    else f := False;
    end;