Ваша цель - определить, является ли данное число 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 не ограничен, операторы не имеют ограничений. Ваш код может занять много времени для запуска.