Предмет: Информатика,
автор: flappykiw1i
Напишите программу, которая выводит все простые числа с чётной суммой цифр в диапазоне от K до N ( 2 ≤ K ≤ N ≤ 100000 ).
Входные данные
Входная строка содержит два натуральных числа, разделённые пробелом, K и N ( 2 ≤ K ≤ N ≤ 100000 ).
Выходные данные
Программа должна вывести все простые числа с чётной суммой цифр в диапазоне от K до N в одну строку, разделив их пробелами. Если таких чисел нет, нужно вывести число 0.
На паскале.
Ответы
Автор ответа:
1
Ответ:
program HomeWork;
var k,n,j:integer;
function IsPrime(a:integer):boolean;
var i:integer;
begin
IsPrime:=True;
for i:=2 to a-1 do
begin
if a mod i = 0 then
begin
IsPrime:=False;
break
end
end
end;
function IsSumEven(a:integer):boolean;
var i,s:integer;
begin
IsSumEven:=False;
s:=0;
while a > 0 do
begin
i:=a mod 10;
a:=a div 10;
s:=s+i
end;
if s mod 2 = 0 then IsSumEven:=True
end;
begin
write('Введите два натуральных числа, разделённые пробелом, K и N ( 2 ≤ K ≤ N ≤ 100000 ): '); readln(k,n);
for j:=k to n do
begin
if IsPrime(j) = True then if IsSumEven(j) = True then write(j, ' ')
end
end.
pinguinbird:
Прошу прощения, забыл последнее условие имплеметировать, о том, что если таких простых чисел нет, то 0 выводить. Прикрутил костыль тут:
begin
chk:=False;
write('Введите два натуральных числа, разделённые пробелом, K и N ( 2 ≤ K ≤ N ≤ 100000 ): '); readln(k,n);
for j:=k to n do
begin
if IsPrime(j) = True then if IsSumEven(j) = True then
begin
write(j, ' ');
chk:=True
end
end;
if chk = False then write(0)
end.
Похожие вопросы
Предмет: Русский язык,
автор: marmyshka63
Предмет: Русский язык,
автор: Аноним
Предмет: Русский язык,
автор: abakarova1
Предмет: Русский язык,
автор: егшшмлд2