Скачать книгу

целых положительных числа; числа расположены в одной строке. Найти их наименьшее общее кратное (НОК), используя формулу НОК(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;

      m := m * a;

      end;

      Write(num);

      end.

      ExamBegin9

      На вход подается целое положительное число. Если оно является степенью числа 2, то вывести текст «YES», иначе вывести «NO».

      uses PT4Exam;

      var

      a, x: integer;

      num: boolean;

      begin

      Task('ExamBegin9');

      ReadLn(a);

      x := 1; num := false;

      while x <= a do

      begin

      x := x * 2;

      if (x = a) or (a = 1) then num := true;

      end;

      if num = true then Write('YES')

      else Write('NO');

      end.

      ExamBegin10

      На вход подаются два целых положительных числа A и K; каждое число располагается на новой строке. Если число A является степенью числа K, т. е. A = KN, то вывести показатель этой степени N, иначе вывести текст «NO».

      uses PT4Exam;

      var

      a, k, x, n: integer;

      z: boolean;

      begin

      Task('ExamBegin10');

      Read(a, k);

      x := 1; n := 0; z := false;

      while x < a do

      begin

      x := x * k;

      n := n + 1;

      if x = a then z := true;

      end;

      if (z = true) or (a = 1) then write(n)

      else write('NO');

      end.

      ExamBegin11

      На вход подается целое число, большее 1. Вывести наименьший делитель данного числа, больший 1.

      uses PT4Exam;

      var

      a, x: integer;

      begin

      Task('ExamBegin11');

      Read(a);

      x := 2;

      while a mod x <> 0 do

      x := x + 1;

      Write(x);

      end.

      ExamBegin12

      На вход подается целое число, большее 1. Если оно является простым, т. е. не имеет положительных делителей, кроме 1 и самого себя, то вывести текст «YES», иначе вывести «NO».

      uses PT4Exam;

      var

      a, i, k: integer;

      begin

      Task('ExamBegin12');

      Read(a);

      k

Скачать книгу