Добавить в цитаты Настройки чтения

Страница 2 из 3



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);

end;



WriteLn(sum);

end.

ExamBegin17

На вход подается набор вещественных чисел, содержащий одно или более положительных чисел и завершающийся отрицательным числом; каждое число располагается на новой строке. Вывести произведение всех положительных чисел из исходного набора.

uses PT4Exam;

var

a, sum: real;

begin

Task('ExamBegin17');

sum := 1;

ReadLn(a);

while a > 0 do

begin

sum := sum * a;

readln(a);

end;

WriteLn(sum:4:2);

end.

ExamBegin18

На вход подается целое положительное число N. Сформировать и вывести целочисленный массив размера N, содержащий N первых положительных нечетных чисел: 1, 3, 5, … . Каждое число выводить на новой строке.

uses PT4Exam;

 const

  R = 100;

 var

  m: array[1..R] of integer;

  a, k, n: integer;

 begin

  Task('ExamBegin18');

  Read(a);

  k := 1; n := 0;

  while n < a do

  begin

    if k mod 2 = 1 then begin

      m[k] := k;

      n := n + 1;

      Writeln(m[k]);

    end;

    k := k + 1;

  end;

end.

ExamBegin19

На вход подается целое положительное число N. Сформировать и вывести целочисленный массив размера N, содержащий степени двойки от первой до N-й: 2, 4, 8, 16, … . Выводить все числа в одной строке, для каждого числа отводить 5 экранных позиций.

uses PT4Exam;

 const

  R = 100;

 var

  m: array[0..R] of integer;

  a, i: integer;

 begin

  Task('ExamBegin19');

  Read(a);

  m[0] := 1;

  for i := 1 to a do

  begin

    m[i] := m[i – 1] * 2;

    Write(m[i]:5);

  end;

end.

Другое решение 19 задачи.

uses PT4Exam;

 var

  a, i, p: integer;

 begin

  Task('ExamBegin19');

  Read(a);

  p := 1;

  for i := 1 to a do

  begin

    p := p * 2;

    Write(p:5);

  end;

end.

ExamBegin20

На вход подаются три числа: целое число N (> 1) и вещественные числа A и D – соответственно первый член и разность арифметической прогрессии (каждое число вводится с новой строки). Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: A, A + D, A + 2·D, A + 3·D, … . Все числа выводить в одной строке, для каждого числа отводить 7 экранных позиций.

uses PT4Exam;

const

  R = 100;

 var

  m: array[1..R] of real;

  n, i: integer;

  a, d: real;

 begin

  Task('ExamBegin20');

  Read(n, a, d);

  for i := 1 to n do

  begin

    m[i] := a;

    Write(m[i]:7:2);

    a := a + d;

  end;

end.

Другое решение 20 задачи.

uses PT4Exam;

 var

  n, i: integer;

  a, d: real;

begin

  Task('ExamBegin20');

  Read(n, a, d);

  for i := 1 to n do

  begin

    Write(a:7:2);

    a := a + d;

  end;

end.

Формирование массивов

ExamBegin21

На вход подаются три числа: целое число N (> 1) и вещественные числа A и D – соответственно первый член и знаменатель геометрической прогрессии (каждое число вводится с новой строки). Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: AA·DA·D2, A·D3, … . Каждое число выводить на новой строке.

uses PT4Exam;

const R = 100;

var

m: array[1..R] of real;

n, i: integer;

a, d: real;

begin

Task('ExamBegin21');

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».