Предмет: Информатика, автор: flappykiw1i

Напишите программу, которая выводит все простые числа с чётной суммой цифр в диапазоне от K до N ( 2 ≤ K ≤ N ≤ 100000 ).

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

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

На паскале.

Ответы

Автор ответа: pinguinbird
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 выводить. Прикрутил костыль тут:
pinguinbird: Нужно добавить новую переменную в самом верху под Program HomeWork;var chk:boolean;
pinguinbird: и немного поменять тело основной программы на вот это:
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.
Похожие вопросы
Предмет: Информатика, автор: mazeina96
Задание 1. По данным IP-адресам определить, к сети какого класса они принадлежат,
получить IP-адрес сети, маску сети и IP-адрес широковещательной рассылки в данной
сети: 98.152.43.182 19.160.138.248 78.123.49.191 205.44.61.253
Используйте IP-адреса из задания 1 и соответствующую длину маски сети,
чтобы получить IP-адрес сети, маску сети и IP-адрес широковещательной рассылки в
данной сети: /4 /10 /25 /28
Является ли данная маска сети правильной и какова ее длина в битах:
По определению маска сети является непрерывной последовательностью битов 1 от
старшего разряда после которых идут только биты 0. Поэтому необходимо перевести в
двоичное представление указанные маски и проверить этот факт. 255.255.0.0 255.253.0.0 255.255.0.0 255.255.0.0
Является ли данный IP-адрес адресом сети с указанной длиной маски сети:
Необходимо вычислить по данному IP-адресу адрес сети и сравнить с исходным адресом,
указанным в задании. 152.228.0.0/14 229.0.0.0/3 126.17.238.0/23 66.37.0.0/16