Паскаль: цикл "поки" та його використання, Детальна інформація

Паскаль: цикл "поки" та його використання
Тип документу: Реферат
Сторінок: 9
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 21.5
Скачувань: 1037
writeln('задайте номер(>0):');

readln(k);

cs:=1; m:=2;

while cs
begin

m:=m+1;

if issimple(m) then cs:=cs+1

end;

{cs=k, значення m – шукане}

writeln( k, '-е просте : ', m)

end.

\xF0E7

Приклад 4.8. Як відомо, кожне натуральне число, більше 1, однозначно розкладається в добуток простих співмножників, наприклад, 13=13, 105=3\xF0D7 5\xF0D7 7, 72=2\xF0D7 2\xF0D7 2\xF0D7 3\xF0D7 3 тощо. Щоб побудувати розклад довільного числа, або його факторизацію, знайдемо його найменший дільник (очевидно, що він простій), запишемо його і поділимо на нього число. Подальші співмножники розкладу утворюються так само доти, поки в результаті ділень не утвориться 1. Наприклад, 36=2\xF0D7 18 (виписали 2), 18=2\xF0D7 9 (2), 9=3\xF0D7 3 (3), 3=3\xF0D7 1 (3).

Очевидно, що найменший дільник частки від ділення не може бути менше, ніж найменший дільник діленого. Тому після чергового ділення пошуки такого найменшого дільника можна починати не з 2, а з останнього дільника.

Алгоритм друкування розкладу n оформимо у вигляді процедури simpdivisors із параметром n ("divisor" означає "дільник"). Можливі дільники будуть значеннями змінної k.

Спочатку k=2. Потім, поки n>1, перевіряється подільність n на k. Якщо ділиться, то виписується значення k і виконується ділення, інакше k збільшується, тому що менших дільників уже бути не може.

Наведене описання обчислень уточнюється в такому вигляді:

procedure simpdivisors(n:integer);

var k:integer;

begin

k:=2;

while n>1 do

begin

if n mod k = 0 then

begin writeln(k); n:=n div k end

else k:=k+1

end

end

\xF0E7

Задачі

The online video editor trusted by teams to make professional video in minutes