Составить программу, выводящую простые числа - Turbo Pascal
Формулировка задачи:
Составить программу, определяющую, есть ли среди палиндромов из интервала [10,10000] простые числа, и выводящую их на печать.
Решение задачи: «Составить программу, выводящую простые числа»
textual
Листинг программы
const
MaxN = 10000;
type
tList = ^rList;
rList = record
N : Word;
X : tList;
end;
var
First, Last, tmp : tList;
N, R, count : Word;
isPrime : Boolean;
begin
New(First); First^.N := 2; First^.X := nil;
Last := First;
for N := 3 to MaxN do
begin
isPrime := True;
tmp := First;
repeat
isPrime := not(N mod tmp^.N = 0);
tmp := tmp^.X;
until (tmp = nil) or not isPrime;
if isPrime then
begin
New(tmp); tmp^.N := N; tmp^.X := nil;
Last^.X := tmp; Last := tmp;
end;
end;
count := 0;
tmp := First;
repeat
N := tmp^.N;
if N > 9 then
begin
R := 0;
while N > 0 do
begin
R := R * 10 + N mod 10; N := N div 10;
end;
if tmp^.N = R then
begin
inc(count);
if count = 1 then
WriteLn('Среди палиндромов простые числа:');
Write(#32, R);
end;
end;
tmp := tmp^.X;
until tmp = nil;
if count = 0 then
Write('Среди палиндромов простых чисел нет.');
WriteLn;
end.
Объяснение кода листинга программы
- В начале программы объявляются необходимые переменные и создается первый элемент списка.
- Затем происходит итерация от 3 до MaxN. На каждой итерации проверяется, является ли число N простым.
- Если число N простое, то создается новый элемент списка, копируется значение N в него и увеличивается счетчик.
- После завершения итерации проверяется, было ли создано хотя бы одно простое число.
- Если было создано хотя бы одно простое число, то выводится сообщение о том, что среди палиндромов есть простые числа.
- Затем выводится само простое число.
- После этого происходит повторная итерация от 3 до MaxN.
- Если на какой-либо итерации находится простое число, то оно копируется в новый элемент списка и увеличивается счетчик.
- Повторяется это до тех пор, пока не будет найдено максимальное простое число.
- В конце программы выводится сообщение о том, что среди палиндромов простых чисел нет.