ЕГЭ 2021. Информатика. Программирование. Как решать задачи ExamBegin 1-80?
Шрифт:
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 := 0;
for i := 1 to a do
if a mod i = 0 then k := k + 1;
if k > 2 then Write('NO')
else Write('YES');
end.
ExamBegin13
На вход подается целое число, большее 1. Разложить данное число на простые множители и вывести все множители в порядке возрастания (каждое число выводить на новой строке, среди выводимых чисел могут быть одинаковые).
uses PT4Exam;
var
a, k: integer;
begin
Task('ExamBegin13');
Read(a);
k := 2;
while a <> 1 do
begin
if a mod k = 0 then begin
Writeln(k);
a := a div k;
end
else k := k + 1;
end;
end.
ExamBegin14
На вход в первой строке подается целое положительное число N, а во второй строке – набор из N целых чисел. Вывести сумму всех чисел из исходного набора.
uses PT4Exam;
var
a, n, i, sum: integer;
begin
Task('ExamBegin14');
Read(n);
sum := 0;
for i := 1 to n do
begin
read(a);
sum := sum + a;
end;
Write(sum);
end.
ExamBegin15
На вход в первой строке подается целое положительное число N, а в следующих N строках – набор из N вещественных чисел (по одному числу в строке). Вывести произведение всех чисел из исходного набора.
uses PT4Exam;
var
x, i: integer;
a, p: real;
begin
Task('ExamBegin15');
Read(x);
p := 1;
for i := 1 to x do
begin
read(a);
p := p * a;
end;
Write(p:4:2);
end.
ExamBegin16
На вход подается набор целых чисел, содержащий одно или более ненулевых чисел и завершающийся числом 0; каждое число располагается на новой строке. Вывести сумму всех чисел из исходного набора.
uses PT4Exam;
var
a, sum: integer;
begin
Task('ExamBegin16');
sum := 0;
ReadLn(a);
while a <> 0 do
begin
sum := sum + a;
Readln(a);