В тайском календаре 2017 год соответствует 2560 году. Тайский календарь всегда на 543 года опережает григорианский календарь.
Наблюдательные кодеры заметят, что 2560 равно 2^9 * 5
, другими словами, оно имеет 10 простых факторов. Это не повторится еще 896 лет! Мы называем год упорным, если в нем ровно десять основных факторов.
Напишите программу, которая выводит истинное значение, если текущий год с использованием тайского календаря, основанного на системных часах, цепкий, а в противном случае - ложное значение.
Тестовые случаи:
- Если программа запускается в течение 2017 года,
true
- Если программа выполняется в течение любого периода с 2018 по 2912 годы,
false
- Если программа запускается в течение 2913,
true
(2913 + 543 =2^7 * 3^3
)
Ответы:
Bash + coreutils, 35 байт
Выходные данные являются непустой строкой (истина) или пустой строкой (ложь).
Попробуйте онлайн!
Альтернативная версия: 37 байт.
Не как в гольфе, но мне нравится этот.
Попробуйте онлайн!
Как это устроено
Арифметическая
$[
дата раскрытия +% Y+543]
выполняетсяdate +%Y
для получения текущего (полного) года и добавляет 543 к году.Фактор берет сумму в качестве аргумента и выводит ее как простую факторизацию: сначала число, подлежащее факторизации, а затем список отдельных простых факторов.
Наконец, awk фильтрует ввод, печатая только строки с ровно 11 полями (число плюс 10 простых факторов).
источник
05AB1E , 10 байтов
Попробуйте онлайн! или как тестовый набор
объяснение
источник
CJam , 13 байтов
Попробуйте онлайн!
объяснение
источник
Математика,
3731 байт5 байтов сохранено благодаря lanlock4 .
Анонимная функция. Не принимает ввод и возвращает
True
илиFalse
как вывод.источник
Now
неявно. Вы можете использоватьDateValue@"Year"
.&
в конце? Кроме того,Date[][[1]]
на пару байтов корочеDateValue@"Year"
(если вы не возражаете,Date
это устарело).#&@@Date[]
вместоDate[][[1]]
. Кроме того, я думаю, что «среда Mathematica + REPL» является допустимым языком программирования здесь, для которого вам не нужно завершение&
.Pyth, 11 байт
Онлайн переводчик доступен здесь.
объяснение
источник
Japt ,
18 1413 байтСохранено 4 байта благодаря ETHproductions. Сохранено 1 байт благодаря obarakon.
Попробуйте онлайн!
источник
A¥º543+Ki¹k l
или543+Ki¹k l ¥A
¹
используется, не будет)
делать то же самое?)
вместо этого.Python 2 ,
9289 байт-3 байта благодаря Джонатану Аллану
Попробуйте онлайн!
Итерируйте до года, извлекая (и подбирая) основные факторы.
Строка exec эквивалентна:
источник
c=i=1
:;c-=1
;print-9==c
,Октава , 31 байт
Попробуйте онлайн!
Здесь используются два трюка:
clock()(1)
индексировать непосредственно в выводclock
(clock(1)
не работает)nnz
вместо тогоnumel
, чтобы , поскольку все записи гарантированно отличны от нуля.Альтернативная версия с тем же количеством байтов
Эту версию можно использовать только в течение нескольких лет
30
, но,очевидно,непринимая вовнимание путешествия во времени, это включает все годы, в которые программа может быть выполнена. Это работает и в Matlab.источник
PHP,
1116866напрямую подсчитывает количество простых факторов.
Старая идея:
11190Это не использует встроенную функцию простого факторинга, а в основном подсчет простого сита, чтобы получить число простых факторов числа <10000. Это соответствует 4-значному году, который PHP предоставляет с помощью
date('Y')
:источник
Y
без кавычек-nr
.$a[$i*$j]=($a[$i]?:1)+($a[$j]?:1)
сохраняет 13 байтов.$j=++$i<1e4
спасает один. И никаких кавычек еще наY
двоих.MATL , 14 байтов
Попробуйте онлайн!
источник
Пакетный, 123 байта
Вы можете подделать скрипт, переопределив
date
переменную вручную перед ее запуском.источник
J , 18 байт
Тело программы:
Попробуйте онлайн!
10=
десять равно#
подсчетq:
основные факторы543+
этот номер добавлен в{.
глава (первый пункт, то есть год)6!:0''
дата (в формате YMD hms)источник
JavaScript (ES6),
7975 байтПорт моего Пакетного ответа. Пройдите по тайскому календарному году, если хотите выполнить определенный тест. Изменить: Сохранено 4 байта благодаря @dandavis.
источник
new Date().getYear()+2443
false
? Коротышки:+Date().slice(11,15)+543
иy?
вместоy>1
y?
бессмысленен,y
никогда не равен нулю.