Huwield
4 год назад
Напишите программу, которая выводит все простые числа с чётной суммой цифр в диапазоне от K до N ( 2 ≤ K ≤ N ≤ 100000 ).Входные данныеВходная строка содержит два натуральных числа, разделённые пробелом, K и N ( 2 ≤ K ≤ N ≤ 100000 ).Выходные данныеПрограмма должна вывести все простые числа с чётной суммой цифр в диапазоне от K до N в одну строку, разделив их пробелами. Если таких чисел нет, нужно вывести число 0.Примерывходные данные100 150выходные данные101 103 107 109 127 149 входные данные40 50выходные данные0PascalABC 1.8
ОТВЕТЫ
Еремей
Oct 24, 2020
Program n1;
function pr(a:longint ):boolean;
var d:longint;
begin
if a<2 then pr:=false
else
begin
pr:=true;
for d:=2 to round(sqrt(a)) do
if a mod d=0 then pr:=false;
end;
end;
function isch(var x: longint ): boolean;
var s: longint;
begin
s:=0;
isch:=false;
while ( x<>0 ) do
begin
s := s + (x mod 10);
x:= x div 10;
end;
if s mod 2=0 then isch:=true;
end;
var k,n,i,c: longint;
y: boolean;
begin
readln(k,n);
if (k>=2) and (n<=100000) then
begin
y:=true;
for i:=k to n do
begin
c:=i;
if (pr(c)) and (isch(c)) then
begin
write(i,' ');
y:=false;
end;
end;
if y then write('0');
end;
end.
function pr(a:longint ):boolean;
var d:longint;
begin
if a<2 then pr:=false
else
begin
pr:=true;
for d:=2 to round(sqrt(a)) do
if a mod d=0 then pr:=false;
end;
end;
function isch(var x: longint ): boolean;
var s: longint;
begin
s:=0;
isch:=false;
while ( x<>0 ) do
begin
s := s + (x mod 10);
x:= x div 10;
end;
if s mod 2=0 then isch:=true;
end;
var k,n,i,c: longint;
y: boolean;
begin
readln(k,n);
if (k>=2) and (n<=100000) then
begin
y:=true;
for i:=k to n do
begin
c:=i;
if (pr(c)) and (isch(c)) then
begin
write(i,' ');
y:=false;
end;
end;
if y then write('0');
end;
end.
635
Смежные вопросы: