Паскаль! Помогите пожалуйста! Free Pascal 2.6.4 Напишите программу, которая выводит все...

0 голосов
29 просмотров

Паскаль! Помогите пожалуйста! Free Pascal 2.6.4
Напишите программу, которая выводит все простые числа, у которых цифры стоят строго в порядке убывания, в диапазоне от K до N ( 2 ≤ K ≤ N ≤ 100000 ).

Входные данные
Входная строка содержит два натуральных числа, разделённые пробелом, K и N ( 2 ≤ K ≤ N ≤ 100000 ).

Выходные данные
Программа должна вывести все простые числа, у которых цифры стоят строго в порядке убывания, в диапазоне от K до N в одну строку, разделив их пробелами. Если таких чисел нет, нужно вывести число 0.

Примеры
входные данные
400 600
выходные данные
421 431 521 541
входные данные
100 200
выходные данные
0


Информатика (543 баллов) | 29 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Program n1;
function isprost(x: integer): boolean;
var i: integer;
begin
if x<2 then isprost:=false else<br>begin
isprost:=true;
for i := 2 to round(sqrt(x)) do if x mod i = 0 then isprost:=false;
end;
end;
function islow(x: integer): boolean;
var n1,n2: integer;
begin
islow:=false;
n2:=x mod 10;
x:=x div 10;
n1:=x mod 10;
x:=x div 10;
while (n1>n2) and (x<>0) do begin
n2:=n1;
n1:=x mod 10;
x:=x div 10;
end;
if n1>n2 then islow:=true;
end;
var k,n,i,f: integer;
begin
readln(k,n);
f:=-1;
for i:=k to n do if isprost(i) and islow(i) then
begin
write(i,' ');
f:=1;
end;
if f=-1 then write(0);
end.

(149k баллов)