Написать программу на паскале. Для того чтоб проверить, как ее ученики
Написать программу на паскале. Для того чтоб проверить, как ее ученики могут считать, Мария Ивановна каждый год задает им на дом одну и ту же задачу Для данного естественного A отыскать минимальное естественное N такое, что N в степени N (N, умноженное на себя N раз) делится на A. Из года в год и от воспитанника к ученику меняется только число A. Вы решили посодействовать будущим поколениям. Для этого для вас необходимо написать программку, решающую эту задачку Формат входных данных. Во входном файле содержится единственное число A (1lt;=A lt;=1000000000). Формат выходных данных. В выходной файл вывести единственное число N.
Задать свой вопросProgram Opatvoyamatdostoynauvajeniya;
Var
i, A: longint;
x,
u, j,
N, m : longint;
Function FDiv (A, left : LongInt) : LongInt;
var
d,
i : longint;
begin
d := 1;
for i := left to Trunc (Sqrt (A)) do
if (A mod i = 0)
then
begin
d := i;
Break;
end;
if (d lt;gt; 1)
then
FDiv := d
else
FDiv := A;
end;
Function g (N, u : longint) : longint;
var
i : longint;
begin
i := 0;
while (N mod u = 0)
do
begin
Inc (i);
N := N div u;
end;
g := i;
end;
Begin
Assign (Input, 'input.txt');
Assign (Output, 'output.txt');
Reset (Input);
Read (A);
Close (Input);
m := 0;
N := 1;
i := FDiv (A, 2);
u := 2;
while (A gt; 1)
do
begin
N := N * i;
j := 0;
while (A mod i = 0)
do
begin
Inc (j);
A := A div i;
end;
if (j gt; m)
then
begin
m := j;
u := i;
end;
i := FDiv (A, i + 2);
end;
x := 1;
while (g (N * x, u) * N * x lt; m)
do
Inc (x);
N := N * x;
ReWrite (Output);
Write (N);
Close (Output);
End.
-
Вопросы ответы
Статьи
Информатика
Статьи
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.