PROGRAM PRG2_3;
VAR I, N, F, J, R, M: INTEGER; BEGIN {ДАНО НАТУРАЛЬНОЕ ЧИСЛО N. ОПРЕДЕЛИТЬ ВСЕ ПРОСТЫЕ ЧИСЛА, НЕ ПРЕВОСХОДЯЩИЕ N.} REPEAT WRITE(¢ВВЕДИТЕ НАТУРАЛЬНОЕ ЧИСЛО N = '); READLN (N); UNTIL N>0; WRITELN('B ПРОМЕЖУТКЕ ОТ 1 ДО', N: 6); R:= 0; FOR J:= 1 ТО N DO BEGIN F:=0; FOR I:= 2 TO J DIV 2 DO IF J MOD I = 0 THEN F:= 1; IF F = 0 THEN BEGIN R:= 1; WRITELN('ЧИСЛ0', J: 6, 'ПРОСТОЕ'); END; END; IF R = 0 THEN WRITELN('ПРОСТЫХ ЧИСЕЛ НЕТ') END. Для решения задачи: - формируем тело программы и описываем переменные; - вводим натуральное число N; - в цикле по переменной J начинаем порождение натуральных чисел, не превосходящих N; - во вложенном цикле по I проверяем, простое ли число J; - в зависимости от значения флагов F и R выводим результат. Переменные: N - исследуемое число; I, J - переменные циклов; F, R - вспомогательные флаги. Задача 2.4 Дано натуральное число N. Разложить его на простые множители. PROGRAM PRG2_4; 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.
|