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; VAR I, N, M, K, NOD: INTEGER; BEGIN {ДАНЫ НАТУРАЛЬНЫЕ ЧИСЛА М И N. ОПРЕДЕЛИТЬ ИХ НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ NOD } REPEAT WRITE('ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = '); READLN (N); WRIТЕ('ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО М ='); READLN (M); UNTIL (N>0) AND (M>0); IF N>M THEN К:= M ELSE К:= N; FOR I:= 1 TO К DO IF (N MOD I = 0) AND (M MOD I = 0) THEN NOD:= I; WRITELN('НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ ЧИСЕЛ', N, 'И', М, 'NOD = ',NOD) END. Для решения задачи: - формируем тело программы и описываем переменные; - вводим натуральные числа М и N; - в цикле от 1 до наименьшего числа порождаем число I и проверяем, является ли оно одновременно делителем М и N; - запоминаем этот делитель в переменной NOD; - выводим результат. Переменные: N, М - исследуемые числа; I - переменная цикла; NOD - наибольший общий делитель; К - наименьшее из М и N. ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 12 ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО М = 18 НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ ЧИСЕЛ 12 И 18 NOD = 6
ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = 13 ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО М = 59 НАИБОЛЬШИЙ ОБЩИЙ ДЕЛИТЕЛЬ ЧИСЕЛ 13 И 59 NOD = 1
Рис. 2.4. Результат работы PRG2_7 Задача 2.8 Даны натуральные числа М и N. Определить их наименьшее общее кратное Nok.
|