//Можно и без дня недели пятницы
//PascalABC.NET 3.2 сборка 1318
//PascalABC вариант
Var
Year,YearCode:integer;
begin
readln(Year);
case(Year div 100 mod 4) of
0:YearCode:=6;
1:YearCode:=4;
2:YearCode:=2;
3:YearCode:=0;
end;
YearCode:=(YearCode+Year mod 100+ Year mod 100 div 4) mod 7;
if Year mod 4<>0 then
begin
if (13+1+YearCode) mod 7=6 then writeln('Январь');
end
else
if (13+1+YearCode) mod 7=0 then writeln('Январь');
if Year mod 4<>0 then
begin
if (13+4+YearCode) mod 7=6 then writeln('Февраль');
end
else
if (13+4+YearCode) mod 7=0 then writeln('Февраль');
if (13+1+YearCode) mod 7=6 then writeln('Октябрь');
if (13+2+YearCode) mod 7=6 then writeln('Май');
if (13+3+YearCode) mod 7=6 then writeln('Август');
if (13+4+YearCode) mod 7=6 then writeln('Март');
if (13+4+YearCode) mod 7=6 then writeln('Ноябрь');
if (13+5+YearCode) mod 7=6 then writeln('Июнь');
if (13+6+YearCode) mod 7=6 then writeln('Декабрь');
if (13+6+YearCode) mod 7=6 then writeln('Сентябрь');
if (13+0+YearCode) mod 7=6 then writeln('Апрель');
if (13+0+YearCode) mod 7=6 then writeln('Июль');
end.
//.NET вариант
uses
system;
const
Day=13;
n=12;
Var
Year,i:integer;
ars:array[1..n] of string:=('Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь');
ard:array[1..n] of DateTime;
begin
readln(Year);
for i:=1 to n do
begin
ard[i]:=ard[i].AddDays(Day-1);
ard[i]:=ard[i].AddMonths(i-1);
ard[i]:=ard[i].AddYears(Year-1);
if ard[i].DayOfWeek.ToString='Friday' then writeln(ars[i]);
end;
end.
Пример ввода:
2016
Пример вывода:
Май