Ваше завдання надзвичайно просте. З огляду на рік, введіть усі місяці цього року, які містять п’ятницю 13-го згідно з григоріанським календарем. Зауважимо, що незважаючи на те, що григоріанський календар не був введений до 1582 року, для простоти ми зробимо вигляд, що він використовується з 0001 року нашої ери.
Правила
Повні програми або функції дозволені.
Ви можете приймати дані як аргументи функції, з STDIN або як аргументи командного рядка.
Вам заборонено використовувати будь-які вбудовані дати та час.
Можна сміливо припускати, що вхід буде дійсним роком. Якщо вхід менший за 1, не є дійсним цілим числом або більшим, ніж тип нативного числу ваших мов, вам не доведеться це обробляти, і ви отримуєте не визначену поведінку.
Вихідні дані можуть бути цифрами англійською або будь-яким іншим читабельним для людини форматом, якщо ви вказали стандарт.
Переконайтеся, що ви обліковуєте високосні роки. І пам’ятайте, високосні роки не трапляються кожні 4 роки!
Поради
Оскільки існує стільки різних способів зробити це, я не хочу розповідати, як це зробити. Однак це може заплутати, з чого почати, тому ось кілька різних надійних способів визначення дня тижня від дати.
Оберіть дату початку з відомим днем тижня, таким як понеділок, 1 січня, 0001 і знайдіть, наскільки далеко один від одного два дні, і візьміть це число mod 7.
Зразок IO
2016 --> May
0001 --> 4, 7
1997 --> Jun
1337 --> 09, 12
123456789 --> January, October
Як завжди, це код-гольф, тому застосовуються стандартні лазівки, і найкоротша відповідь виграє.
0001 --> 5
:? Відповідно до цієї сторінки (і мого коду) це має бути квітень та липень.