К списку задач
Легко Решено: 0 Процент решений: 0%

Проверка на простое число

Определите, является ли число простым.

Чему вы научитесь

  • Проверять делимость оператором %
  • Останавливаться на квадратном корне из n
  • Учитывать 0, 1 и 2 как особые случаи

Условие

Простое число — это число больше 1, которое делится только на 1 и само себя. Достаточно проверять делители до квадратного корня из n.

Реализуйте функцию is_prime(n).

Ввод

n: Число для проверки.

Вывод

Верните true, если n — простое, иначе false.

Ограничения

-1,000 ≤ n ≤ 1,000,000,000,000

Примеры

Пример 1
Ввод:
n = 29

Ожидаемый вывод:
expected = True
Ввод:
long long n = 29;

Ожидаемый вывод:
bool expected = true;
Ввод:
long n = 29;

Ожидаемый вывод:
bool expected = true;

Пояснение

У числа 29 нет делителей, кроме 1 и 29.

Пример 2
Ввод:
n = 21

Ожидаемый вывод:
expected = False
Ввод:
long long n = 21;

Ожидаемый вывод:
bool expected = false;
Ввод:
long n = 21;

Ожидаемый вывод:
bool expected = false;

Пояснение

21 = 3 × 7, поэтому оно не является простым.

Как подступиться

Сначала попробуйте сами, затем открывайте подсказки по одной.

Подсказка 1

Сначала обработайте числа меньше 2; они не могут быть простыми.

Подсказка 2

Проверяйте возможные делители только до квадратного корня числа.

Подсказка 3

Следите за чётными числами и повторяющимися множителями: одного делителя достаточно, чтобы число было не простым.

Ожидаемая сложность

время O(sqrt(n)), доп. память O(1)

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.