Рассмотрим решение задачи на простые числа, так как это одна из самых распространённых тем в олимпиадном программировании. Читаем условие задачи: Давайте сначала напишем функцию, которая проверяет, является ли число простым. Напомню определение простого числа: Простое число — это натуральное число, имеющее ровно два различных натуральных делителя. Иначе говоря, натуральное число a является простым, если оно отлично от 1 и делится без остатка только на 1 и на самого себя. Таким образом, необходимо проверить делимость числа a на все числа от 2 до a (не включая). Однако такой вариант решения работает слишком долго. И нам понадобится немного математики. Предположим, что число a не простое, тогда существуют такие b и c, что a = b * c. Без потери общности можно считать, что b <= c. Тогда можно показать, что b * b <= a (или другими словами, что b не превосходит квадратного корня из a). Тогда мы приходим к тому, что можно проверять не все числа до a, а все числа до квадратного корня из a. Може