Seu desafio é extremamente simples. Dado um ano como entrada, imprima todos os meses desse ano que conterão uma sexta - feira 13, de acordo com o calendário gregoriano. Observe que, embora o Calendário Gregoriano não tenha sido introduzido até 1582, por uma questão de simplicidade, fingiremos que ele está em uso desde 0001 DC.
Regras
Programas ou funções completos são permitidos.
Você pode receber entradas como argumentos de função, de STDIN ou como argumentos de linha de comando.
Você não tem permissão para usar nenhuma data e hora incorporadas.
Você pode assumir com segurança que a entrada será um ano válido. Se a entrada for menor que 1, não for um número inteiro válido ou maior que o tipo de número nativo do seu idioma, você não precisará lidar com isso e obterá um comportamento indefinido.
A saída pode ser números, em inglês ou em qualquer outro formato legível, desde que você especifique o padrão.
Certifique-se de ter em conta os anos bissextos. E lembre -se, anos bissextos não acontecem a cada 4 anos!
Dicas
Como existem tantas maneiras diferentes de fazer isso, não quero lhe dizer como fazê-lo. No entanto, pode ser confuso por onde começar; portanto, existem algumas maneiras confiáveis de determinar o dia da semana a partir de uma data.
Escolha uma data de início com um dia conhecido da semana, como segunda-feira, 1º de janeiro de 0001 e descubra a distância entre os dois dias e faça o número 7.
IO de amostra
2016 --> May
0001 --> 4, 7
1997 --> Jun
1337 --> 09, 12
123456789 --> January, October
Como de costume, isso é código-golfe, então as brechas padrão se aplicam e a resposta mais curta vence.
0001 --> 5
:? De acordo com esta página (e meu código), deve ser abril e julho.