Паскаль. Основы программирования


Условия в программах с циклами


Рассмотрим два примера, в программах которых используются не только циклы, но и в циклах необходимо применение условного оператора

 if ... then ... else ...

Пример 3. Составить программу разложения натурального числа n на простые множители.

Прежде вспомним, что к простым числам относятся все те натуральные числа, которые имеют только два делителя - единицу и само себя.

Натуральные числа, имеющие более двух делителей называются составными.

Единица имеет только один делитель - само себя и поэтому она не может относится ни к простым, ни к составным числам. Если выписать простые числа в порядке их возрастания, начиная от самого меньшего - 2, то получим следующий ряд чисел:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, ...

А теперь вспомним, как в младших классах мы раскладывали натуральные числа на простые множители.

Для этого берем первое простое число - 2 и пробуем делить данное натуральное число на 2, если число делится на 2, тогда надо 2 записать, а число разделить на 2 и снова полученный результат пробуем делить на два, если делится, тогда повторяем процесс деления, если не делится, тогда пробовать делить на следующее простое число - 3 и так далее.

Обычно такой процесс мы записывали "столбиком":

Например:                                            или

 

                                
 

Таким образом, число 360 можно разложить на следующие простые множители: 360 = 2

2
2
3
3
5.

Самый простой алгоритм для составления программы может быть таким.

Алгоритм

 

В качестве первого делителя взять 2, присвоить это значение некоторой переменной i;

начать цикл "пока i <= n";

если

данное число n делится на i, тогда выдать на экран значение i и разделив данное число на  i, присвоить новое значение той же переменной n (n := n div i);

далее цикл продолжить, но значение i не увеличивать на 1, а проверить деление нового значения n на прежнее значение i;

если n не делится на i, тогда i увеличить на 1 (i := i + 1) и продолжить цикл, т.е.


Начало  Назад  Вперед