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

Pascal. надо найти 101-й простой (делится только на 1 и на себя) палиндром - это число, которое читается одинаково справа налево и слева направо. надо использовать mod и div, чтобы выделить цифры числа. 1-й - это 2, 10-й - 191

Показать ответ
Ответ:
PascalABC.NET 3.4.2, сборка 1826 от 07.10.2018Внимание! Если программа не работает, обновите версию!

function IsPrime(n: integer): boolean;

begin

 if n < 4 then Result := True

 else

 begin

   var found := (n mod 2 = 0);

   var p := 3;

   while (not found) and (sqr(p) <= n) do

   begin

     found := (n mod p = 0);

     p += 2

   end;

   Result := not found

 end

end;


function IsPalindrom(n: integer): boolean;

begin

 Result := True;

 if n > 10 then

 begin

   var (n1, i) := (n, -1);

   var a := new integer[9];

   while n1 > 0 do

   begin

     i += 1;

     a[i] := n1 mod 10;

     n1 := n1 div 10

   end;

   for var j := 0 to i div 2 do

   begin

     if a[j] <> a[i - j] then

     begin

       Result := False;

       break

     end

   end

 end

end;



begin

 var (i, k) := (3, 1);

 repeat

   if IsPrime(i) and IsPalindrom(i) then k += 1;

   i += 2

 until k >= 101;

 (i - 2).Println

end.


Результат: 94349
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота