Испытания

Пары без функций

Python: Составные данные

Пары неотрицательных целых чисел можно представить числами и арифметическими операциями. Можно считать, что пара чисел a и b – это 2^a * 3^b.

Функции car и cdr при этом будут просто вычислять значения a и b (кратности двойки и тройки, соответственно), раскладывая аргумент на множители.

Например, имея пару 5, 8 в виде числа 209952 (2^5 * 3^8), можно получить первый элемент пары, разложив число на множители и вычислив факторизацию для числа 2, а второй элемент пары – разложив число на множители и вычислив факторизацию для числа 3.

pairs.py

Реализуйте и экспортируйте следующие функции в соответствии с алгоритмом выше:

  • cons
  • car
  • cdr

Пример

>>> pair = cons(5, 8) # 2^5 * 3^8 = 209952
>>> car(pair)
5
>>> cdr(pair)
8

Подсказки

  • Пара – это число, поэтому, чтобы получить из него исходные значения a и b, нужно раскладывать число на множители.
Успешных завершений: 89%

Последние код-ревью

Автор Дата обновления Версий
mikardo 02 мая, 03:12 1
user-110df8b01617705f 28 апр., 18:48 2
andrka 17 апр., 09:38 1
viktor_tupichkin 15 апр., 09:54 1
hardcoretime 13 апр., 09:27 1