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

Ответы на вопрос

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.



Для решения данной задачи, можно использовать переборный алгоритм.
Алгоритм будет следующим: 1. Считываем число "a" из входного файла. 2. Инициализируем переменную "n" равной 1. 3. Инициализируем переменную "power" равной 1. 4. Запускаем цикл, который будет выполняться до тех пор, пока результат деления "power" на "a" не будет равен 0. Внутри цикла: - Увеличиваем "n" на 1. - Вычисляем "power" как результат умножения "n" на самого себя "n" раз. 5. Записываем полученное значение "n" в выходной файл.
Пример кода на паскале: ``` var inputFile, outputFile : TextFile; a, n, power : Integer;
begin AssignFile(inputFile, 'input.txt'); // открываем входной файл Reset(inputFile);
AssignFile(outputFile, 'output.txt'); // открываем выходной файл Rewrite(outputFile);
ReadLn(inputFile, a); // считываем число a
n := 1; power := 1;
while power mod a <> 0 do begin n := n + 1; power := power * n; end;
WriteLn(outputFile, n); // записываем результат в выходной файл
CloseFile(inputFile); // закрываем файлы CloseFile(outputFile); end. ```
После выполнения программы, в выходном файле будет записано минимальное значение "n", при котором "n" в степени "n" делится на "a".


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili