x = range(1, 13) y1 = range(0, 4) y2 = range(0, 10) def get_happy_day(i, j, k) : return i == j + k count = 0 for i in x : if i == 4 or i == 6 or i == 9 or i == 11 : #4,6,9,11月はこのループ for j in y1 : if j == 3 : #30日はこのループ for k in y2 : if not k == 0 : #30日以外はスキップ continue else : #30日の場合はget_happy_day判定 if get_happy_day(i, j, k) : count = count + 1 else : #1日~29日はこのループ for k in y2 : if get_happy_day(i, j, k) : count = count + 1 elif i == 2 : #2月の場合はこのループ for j in y1 : if j == 3 : #30日はこのループ continue elif j == 2 : #20日~29日はこのループ for k in y2 : if k == 9 : #29日はスキップ continue else : if get_happy_day(i, j, k) : count = count + 1 else : #1日~19日はこのループ for k in y2 : if get_happy_day(i, j, k) : count = count + 1 else : #それ以外の月はこのループ for j in y1 : if j == 3 : #30日,31日はこのループ for k in y2 : if k >= 2 : #30,31日以外はスキップ continue else : #30,31日の場合はget_happy_day判定 if get_happy_day(i, j, k) : count = count + 1 else : #1日~29日はこのループ for k in y2 : if get_happy_day(i, j, k) : count = count + 1 print (count)