ExamBegin6
На вход подаются два целых положительных числа; числа расположены в одной строке. Найти их наименьшее общее кратное (НОК), используя формулу НОК(A, B) = A·(B/НОД(A, B)), где НОД(A, B) – наибольший общий делитель, а символ «/» обозначает операцию деления нацело. НОД находить с помощью алгоритма Евклида (см. задание ExamBegin5).
uses PT4Exam;
var
a, b, nod: integer;
begin
Task('ExamBegin6');
Read(a, b);
nod := a * b;
while a <> b do
begin
if a > b then a := a – b
else b := b – a;
end;
Write(nod div a);
end.
ExamBegin7
На вход подаются два целых положительных числа: A и D (2 ? D ? 9); числа расположены в одной строке. Вывести строку, изображающую запись числа A в системе счисления с основанием D(полученная строка не должна содержать незначащих нулей).
uses PT4Exam;
var
a, b, rem, num, k: integer;
begin
Task('ExamBegin7');
Read(a, b);
num := 0; k := 1;
while a > 0 do
begin
rem := a mod b;
a := a div b;
num := num + rem * k;
k := k * 10;
end;
Write(num);
end.
ExamBegin8
На вход в первой строке подается целое число D (2 ? D ? 9), а во второй строке – текст, изображающий запись целого положительного числа A в системе счисления с основанием D. Вывести число A в десятичной системе счисления.
uses PT4Exam;
var
a, num, k, m: integer;
b: string;
begin
Task('ExamBegin8');
Readln(a);
Readln(b);
num := 0; m := 1;
while length(b) > 0 do
begin
k := StrToInt(Copy(b, length(b), 1));
Delete(b, length(b), 1);
num := num + k * m;