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