program ;
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 < > 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 > 1)
do
begin
n : = n * i;
j : = 0;
while (a mod i = 0)
do
begin
inc (j);
a : = a div i;
end;
if (j > m)
then
begin
m : = j;
u : = i;
end;
i : = fdiv (a, i + 2);
end;
x : = 1;
while (g (n * x, u) * n * x < m)
do
inc (x);
n : = n * x;
rewrite (output);
write (n);
close (output);
end.
program z1;
var i,x,y,z,k:integer;
begin
k:=0;
randomize;
writeln ('Проверка знания Таблицы умножения');
writeln;
for i:=1 to 5 do
begin
x:=random(9)+1;
y:=random(9)+1;
writeln ('Сколько будет ',x,' * ',y);
write ('Ваш ответ ');
readln (z);
if z=x*y then
begin
k:=k+1;
writeln ('Правильно!')
end
else writeln ('Неправильно! ',x,' * ',y,' = ',x*y);
writeln
end;
writeln;
writeln ('Количество правильных ответов ',k)
end.
Объяснение:
Цикл с параметром (5 вопросов):
1) Числа генерируются случайным образом от 1 до 9
2) Вывод на экран вопроса
3) Ввод ответа пользователем
4) Оценка правильности ответа (полный оператор ветвления - если ответ пользователя верен, то увеличиваем значение k и выводим сообщение о верности ответа, иначе выводим сообщение об ошибочности ответа и верный ответ)
Вывод на экран количество правильных ответов