
"""simple docstring"""





from collections import defaultdict
from math import gcd







def 	__a     (		__lowerCamelCase = 150_0000  ):
   UpperCAmelCase_					:					defaultdict			     =    defaultdict(__lowerCamelCase  )
   UpperCAmelCase_					:					List[str]			     =    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
         UpperCAmelCase_					:					str			     =    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() = }""")




"""simple docstring"""





from collections import namedtuple

_a		       =							namedtuple('from_to', 'from_ to')

_a		       =							{
    'cubicmeter': from_to(1, 1),
    'litre': from_to(0.001, 1_000),
    'kilolitre': from_to(1, 1),
    'gallon': from_to(0.0_0454, 264.172),
    'cubicyard': from_to(0.7_6455, 1.3_0795),
    'cubicfoot': from_to(0.028, 35.3147),
    'cup': from_to(0.0_0023_6588, 4226.75),
}







def 	__a     (		__lowerCamelCase,		__lowerCamelCase,		__lowerCamelCase  ):
   if from_type not in METRIC_CONVERSION:
      raise ValueError(
          f"""Invalid 'from_type' value: {from_type!r}  Supported values are:\n"""
          + ", ".join(__lowerCamelCase  )  )
   if to_type not in METRIC_CONVERSION:
      raise ValueError(
          f"""Invalid 'to_type' value: {to_type!r}.  Supported values are:\n"""
          + ", ".join(__lowerCamelCase  )  )
   return value * METRIC_CONVERSION[from_type].from_ * METRIC_CONVERSION[to_type].to


if __name__ == "__main__":
    import doctest

    doctest.testmod()


