





'''simple docstring'''






from collections import defaultdict
from math import gcd
def    UpperCamelCase__      (		lowerCAmelCase = 1_50_00_00  ):





      """simple docstring"""


      _lowerCAmelCase							     =							defaultdict(lowerCAmelCase  )
      _lowerCAmelCase							     =							2
      while 2 * euclid_m * (euclid_m + 1) <= limit:
            for euclid_n in range((euclid_m % 2) + 1							,	lowerCAmelCase							,	2  ):
                  if gcd(lowerCAmelCase							,	lowerCAmelCase  ) > 1:
                        continue
                  _lowerCAmelCase							     =							2 * euclid_m * (euclid_m + euclid_n)
                  for perimeter in range(lowerCAmelCase							,	limit + 1							,	lowerCAmelCase  ):
                        frequencies[perimeter] += 1
            euclid_m += 1
      return sum(1 for frequency in frequencies.values() if frequency == 1  )


if __name__ == "__main__":
      print(F"""{solution() = }""")











from collections import defaultdict

from graphs.minimum_spanning_tree_prims import prisms_algorithm as mst





def      __snake_case	(			):
    __a       ,   __a						       =				9, 14  # noqa: F841
    __a						       =				[
        [0, 1, 4],
        [0, 7, 8],
        [1, 2, 8],
        [7, 8, 7],
        [7, 6, 1],
        [2, 8, 2],
        [8, 6, 6],
        [2, 3, 7],
        [2, 5, 4],
        [6, 5, 2],
        [3, 5, 14],
        [3, 4, 9],
        [5, 4, 10],
        [1, 7, 11],
    ]

    __a						       =				defaultdict(_UpperCAmelCase				)
    for nodea, nodea, cost in edges:
        adjancency[nodea].append([nodea, cost]				)
        adjancency[nodea].append([nodea, cost]				)

    __a						       =				mst(_UpperCAmelCase				)

    __a						       =				[
        [7, 6, 1],
        [2, 8, 2],
        [6, 5, 2],
        [0, 1, 4],
        [2, 5, 4],
        [2, 3, 7],
        [0, 7, 8],
        [3, 4, 9],
    ]

    for answer in expected:
        __a						       =				tuple(answer[:2]				)
        __a						       =				tuple(edge[::-1]				)
        assert edge in result or reverse in result





