import math def count_triangles_with_area(N): triangles = set() # 最大辺を制限(面積Nなので辺の合計はある程度までで良い) max_len = 2 * N + 1 # 十分な上限(実験的に) for a in range(1, max_len): for b in range(a, max_len): # b >= a for c in range(b, max_len): # c >= b # 三角形の成立条件 if a + b > c: s = (a + b + c) / 2 area_squared = s * (s - a) * (s - b) * (s - c) if area_squared <= 0: continue area = math.sqrt(area_squared) if math.isclose(area, N, rel_tol=1e-9): # 三辺をソートしてセットに登録(合同除去) triangles.add((a, b, c)) return len(triangles)