Задние
Найти максимальную цифру в записи трехзначного числа и вывести на печать ее название. Определить, есть ли данная цифра простым числом.
Выбор алгоритма решения задачи
Для решения этой задачи, необходимо найти данные три числа, определить который из них наибольший и определить есть оно простым числом. Простое число — это натуральное число, которое имеет только 2 натуральных делителя (лишь 1 и само это число). Все остальные числа кроме единицы называются сложными. Таким образом, все натуральные числа, за исключением единицы, разбиваются на простые и сложные.
Описание схемы алгоритма решения задачи
В этой задаче необходимо ввести три переменные для трех чисел. Определить, входит ли введенное число в тот промежуток, который необходимо (if (x>99) and (x<1000)). Определить эти числа с помощью функции trunc, которая выделяет целую часть числа. Определить наибольшее значение и выяснить простое ли данное число, или нет. Вывести полученный результат.
Блок-схема
Текст программы
Program lab2;
var x1, {первое число трехзначного числа}
x2, {второе число трехзначного числа}
x3, {третье число трехзначного числа}
i, {переменная для цикла}
s:byte; {переменная для определения простого числа}
x, {трехзначное число}
max:word; {максимальная цифра трехзначного числа}
Begin
writeln('Vvedite trehznachnoye chislo:');
readln(x);
s:=0;
if (x>99) and (x<1000) then begin {если число является трехзначным}
x1:= trunc(x/100); {выделение старшей части цифры}
x2:= trunc((x-x1*100)/10); {выделение средней части цифры}
x3:= x-x1*100-x2*10; {выделение младшей части цифры}
writeln('x1 = ',x1,' x2 = ',x2,' x3 = ',x3); {Вывод трех цифр}
if x1>x2 then begin {если первая цифра больше второй}
max:=x1;
if max<x3 then max:=x3 {если первая цифра больше третей}
else max:=x2; {иначе вторая больше первой}
end else begin max:=x2; {иначе вторая больше первой и является максимальной}
if max<x3 then max:= x3; {если третья больше второй}
end;
for i:=2 to max do begin {цикл определения простого числа}
if (max mod i = 0) then begin {если деление с остатком равно нулю}
s:=s+1; {подсчет делений с остатком равным нулю }
end;
end;
if s=1 then writeln('Max chislo - prostoe i = ',max) {если было только одно деление, значит это простое число}
else writeln('Max chislo - neprostoe i = ',max); {иначе оно непростое}
end;
readln;
end.
Результат работы программы