Написать программу ** паскале. Для того чтобы проверить, как ее ученики умеют считать,...

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

Написать программу на паскале. Для того чтобы проверить, как ее ученики умеют считать, Мария Ивановна каждый год задает им на дом одну и ту же задачу – «Для заданного натурального A найти минимальное натуральное N такое, что N в степени N (N, умноженное на себя N раз) делится на A». Из года в год и от ученика к ученику меняется только число A. Вы решили помочь будущим поколениям. Для этого вам необходимо написать программу, решающую эту задачу Формат входных данных. Во входном файле содержится единственное число A (1<=A <=1000000000). Формат выходных данных. В выходной файл вывести единственное число N.


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

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, 1);

   close(text);}

   

   reset(text);

   read(text, a);

   writeln('a=', a);

   close(text);

   

   n := 0;

   repeat

       n := n + 1;

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

   

   writeln('n=', n);

   assign(text, 'output.txt');

   rewrite(text);

   writeln(text, n);

   close(text);

   

   {reset(text);

   read(text, n);

   writeln('n=', n);

   close(text);}

end.

(55.0k баллов)