var startyear, endyear, year, longyear, ayear, weekday; procedure calcweekday; begin weekday := ayear + ayear / 4 - ayear / 100 + ayear / 400; weekday := weekday - (weekday / 7) * 7 end; procedure calclongyear; begin longyear := 0; ayear := year; call calcweekday; if weekday = 4 then longyear := 1; ayear := year - 1; call calcweekday; if weekday = 3 then longyear := 1 end; begin ? startyear; ? endyear; year := startyear; while year <= endyear do begin call calclongyear; if longyear <> 0 then ! year; year := year + 1 end end.