Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИГА_Учимся программировать TURBO PASCAL 7.doc
Скачиваний:
32
Добавлен:
19.08.2019
Размер:
1.62 Mб
Скачать

Var I, n, f, j : integer;

BEGIN

{ДАНО НАТУРАЛЬНОЕ ЧИСЛО N. РАЗЛОЖИТЬ ЕГО НА ПРОСТЫЕ МНОЖИТЕЛИ.} REPEAT

WRITE('BBEДИTE НАТУРАЛЬНОЕ ЧИСЛО N = ');

READLN (N);

UNTIL N>0;

WRITE(N : 6, '= 1');

F :=0;

J := N;

FOR I := 2 TO N DIV 2 DO

BEGIN

IF J MOD I = 0 THEN BEGIN

F := 1;

{ЦИКЛ ОПРЕДЕЛЯЕТ, СКОЛЬКО ТАКИХ МНОЖИТЕЛЕЙ В НАШЕМ ЧИСЛЕ N}

WHILE J MOD I = 0 DO

BEGIN

WRITE('*', I);

J := J DIV I

END;

END;

{F ОПРЕДЕЛЯЕТ, БЫЛИ ЛИ НАЙДЕНЫ ПРОСТЫЕ МНОЖИТЕЛИ,

КОТОРЫЕ БОЛЬШЕ ЕДИНИЦЫ}

IF F = 0 THEN WRITELN('*', N)

ELSE WRITELN

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим натуральное число N;

- в цикле по переменной I начинаем порождение натуральных чисел, не превосходящих N/2;

- если такое число является делителем, то определяем, сколь­ко таких делителей, уменьшая число N;

- в зависимости от значения флага F выводим результат.

Переменные: N - исследуемое число;

I, J - переменные циклов;

F - вспомогательный флаг.

ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 12

12 = 1*2*2*3

ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 13

13 = 1 * 13

Рис. 2.2. Результат работы PRG2_4

Задача 2.5 Дано натуральное число N. Определить, является ли оно совершенным. Совершенное число N равно сумме всех своих делителей, не превосходящих само N.

PROGRAM PRG2_5;

Var I, n, sum : integer;

BEGIN

{ДАНО НАТУРАЛЬНОЕ ЧИСЛО N. ОПРЕДЕЛИТЬ, ЯВЛЯЕТСЯ ЛИ ОНО СОВЕРШЕННЫМ. СОВЕРШЕННОЕ ЧИСЛО N РАВНО СУММЕ ВСЕХ СВОИХ ДЕЛИТЕЛЕЙ, НЕ ПРЕВОСХОДЯЩИХ САМО N }

REPEAT

WRITE('BBEДИTE НАТУРАЛЬНОЕ ЧИСЛО N = ');

READLN (N);

UNTIL N>0;

SUM := 0;

FOR I := 1 TO N DIV 2 DO

IF N MOD I - 0 THEN SUM := SUM+I;

IF SUM - N THEN WRITELN('ЧИСЛО', N, 'СОВЕРШЕННОЕ')

ELSE WRITELN('ЧИСЛО', N, 'HE СОВЕРШЕННОЕ')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим натуральное число N;

- находим все делители числа N, не обязательно простые, и суммируем их;

- в зависимости от значения SUM выводим результат.

Переменные: N - исследуемое число;

I - переменная цикла;

SUM - сумма делителей.

ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 6

ЧИСЛО 6 СОВЕРШЕННОЕ

ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 111

ЧИСЛО 111 НЕ СОВЕРШЕННОЕ

Рис. 2.3. Результат работы PRG2_5

Задача 2.6 Даны натуральные числа М и N. Определить, яв­ляются ли они взаимно простыми. Взаимно про­стые числа не имеют общих делителей, кроме 1.

PROGRAM PRG2_6;

Var I, n, m, к : integer;

FLAG : BOOLEAN;

BEGIN

{ДАНЫ НАТУРАЛЬНЫЕ ЧИСЛА М И N. ОПРЕДЕЛИТЬ,

ЯВЛЯЮТСЯ ЛИ ОНИ ВЗАИМНО ПРОСТЫМИ.

ВЗАИМНО ПРОСТЫЕ ЧИСЛА НЕ ИМЕЮТ ОБЩИХ ДЕЛИТЕЛЕЙ,

КРОМЕ ЕДИНИЦЫ }

REPEAT

WRITE('BBEДИTE НАТУРАЛЬНОЕ ЧИСЛО N = ');

READLN (N);

WRITE('ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО М = ');

READLN (M);

UNTIL (N>0) AND (M>0);

FLAG := FALSE;

IF N>M THEN К := M ELSE К := N;

FOR I := 2 TO К DO

IF (N MOD I = 0) AND (M MOD I = 0) THEN FLAG := TRUE;

If flag then

WRITELN('ЧИСЛА', N, 'И', М, 'НЕ ВЗАИМНО ПРОСТЫЕ')

ELSE

WRITELN('ЧИСЛА', N, 'И', M, 'ВЗАИМНО ПРОСТЫЕ')

END.

Для решения задачи:

- формируем тело программы и описываем переменные;

- вводим натуральные числа М и N;

- в цикле от 2 до наименьшего числа порождаем число I и проверяем, является ли оно одновременно делителем М и N;

- в зависимости от значения FLAG выводим результат.

Переменные:

N, М - исследуемые числа;

I - переменная цикла;

FLAG - вспомогательный флаг;

К - наименьшее из N и М.

Задача 2.7 Даны натуральные чист М и N. Определить их наибольший общий делитель NOD.

PROGRAM PRG2_7;