Ваша цель - определить, является ли данное число nпростым в наименьшем количестве байтов. Но ваш код должен быть одним выражением Python 2 для чисел, состоящих только из
- операторы
- входная переменная
n - целочисленные константы
- скобки
Нет циклов, нет присваиваний, нет встроенных функций, только то, что перечислено выше. Да, это возможно.
операторы
Вот список всех операторов в Python 2 , которые включают арифметические, побитовые и логические операторы:
+ adddition
- minus or unary negation
* multiplication
** exponentiation, only with non-negative exponent
/ floor division
% modulo
<< bit shift left
>> bit shift right
& bitwise and
| bitwise or
^ bitwise xor
~ bitwise not
< less than
> greater than
<= less than or equals
>= greater than or equals
== equals
!= does not equal
Все промежуточные значения являются целыми числами (или False / True, что неявно равно 0 и 1). Возведение в степень не может использоваться с отрицательными показателями, поскольку это может привести к плавающим эффектам. Обратите внимание, что /делает разделение по полу, в отличие от Python 3, поэтому //не требуется.
Даже если вы не знакомы с Python, операторы должны быть довольно интуитивно понятными. В этой таблице приведен приоритет операторов, а в этом разделе и ниже - подробная спецификация грамматики. Вы можете запустить Python 2 на TIO .
I / O
Входные данные: положительное целое число n, по крайней мере 2.
Выходные данные: 1, если nпростое число, и 0 в противном случае. Trueи Falseтакже может быть использован. Побеждает несколько байтов.
Поскольку ваш код является выражением, это будет фрагмент, ожидающий входное значение, сохраненное как n, и вычисляющий желаемый результат.
Ваш код должен работать для nсколь угодно больших системных ограничений. Поскольку тип целых чисел Python не ограничен, операторы не имеют ограничений. Ваш код может занять много времени для запуска.