Для того чтобы проверить, как ее ученики умеют считать, Мария Ивановна каждый год задает...

0 голосов
393 просмотров

Для того чтобы проверить, как ее ученики умеют считать, Мария Ивановна каждый год задает им на дом одну и ту же задачу – «Для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A». Из года в год и от ученика к ученику меняется только число A. Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу Формат входных данных. Во входном файле содержится единственное число A (1  A  109). Формат выходных данных. В выходной файл вывести единственное число N. Примеры. input.txt output.txt 8 4 13 13 Имя входного файла input.txt. Имя входного файла output.txt. Максимальное время работы на одном тесте – 2 сек. Максимальное время работы на одном тесте – 2 сек. Максимальный объем используемой памяти 32 мегабайта


Информатика (15 баллов) | 393 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

/// PascalABC.Net 3.4.2, 2053(11.05.19)

var

   a, n: longint;

   text: textfile;

function myMod(num, power, divider: longint): longint;

var

   rest, i: longint;

begin

   rest:=1;

   divider := abs(divider);

   for i := 1 to power do

   begin

       rest := rest * num;

       rest := rest mod divider;

   end;

   

   myMod := rest;

end;

begin

   assign(text, 'input.txt');

   

   {rewrite(text);

   writeln(text, 109);

   close(text);}

   

   reset(text);

   read(text, a);

   writeln('a=', a);

   close(text);

   

   n := 1;

   repeat

       n := n + 1;

   until MyMod(n, n, a) = 0;

   

   assign(text, 'output.txt');

   rewrite(text);

   writeln(text, n);

   close(text);

   

   {reset(text);

   read(text, n);

   writeln('n=', n);

   close(text);}

end.

(55.0k баллов)