В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
ilqartural2005
ilqartural2005
05.12.2022 09:27 •  Информатика

Напишите программу, которая выводит все простые числа с чётной суммой цифр в диапазоне от 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 выходные данные 0 pascalabc 1.8

Показать ответ
Ответ:
marivenkova
marivenkova
05.10.2020 12:59
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.
0,0(0 оценок)
Ответ:
VaDerSs
VaDerSs
05.10.2020 12:59
Var
  n,k,i,j,r,s:longint;
  notfound,flag:boolean;

begin
  Read(k,n); { начальное и конечное значение интервала }
  notfound:=True;
  for i:=k to n do begin
    flag:=True; j:=2;
    r:=round(sqrt(i));
    while flag and (j<=r) do
      if i mod j = 0 then flag:=false
      else Inc(j);
    if flag then begin { нашли простое число i }
      s:=0; r:=i;
      repeat
        s:=s+r mod 10;
        r:=r div 10
      until r=0;
      if s mod 2=0 then begin Write(i,' '); notfound:=False end;
      end
    end;
    if notfound then Writeln(0)
end.

Примеры
100 150
101 103 107 109 127 149

40 50
0

2 1000
2 11 13 17 19 31 37 53 59 71 73 79 97 101 103 107 109 127 149 163 167 181 211 233 239 251 257 271 277 293 307 347 349 367 383 389 419 431 433 439 457 479 491 499 503 509 521 523 541 547 563 569 587 613 617 619 631 653 659 673 677 691 701 709 727 743 761 769 787 811 839 853 857 859 877 907 929 941 947 967 983
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота