Задание
Требуется написать программу, которая среди целых чисел ищет число с простым количеством различных делителей \(количество делителей — простое число\) и максимальной суммой цифр числа.
Выберите функции, которые могут быть использованы при решении этой задачи.
- 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;