code: 
  
  
  
  
  
  '''simple docstring'''
  
  
  from __future__ import annotations
  
  import math
  import random
  
  
  
  
  def    __a (     UpperCAmelCase       ,			UpperCAmelCase       ,			UpperCAmelCase    )      ->list[int]:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	A							  =      d * e - 1
  	A							  =      0
  	A							  =      0
  	while p == 0:
  		A							  =      random.randint(2       ,			n - 1    )
  		A							  =      k
  		while True:
  			if t % 2 == 0:
  				A							  =      t // 2
  				A							  =      (g**t) % n
  				A							  =      math.gcd(x - 1       ,			UpperCAmelCase    )
  				if x > 1 and y > 1:
  					A							  =      y
  					A							  =      n // y
  					break  # find the correct factors
  			else:
  				break  # t is not divisible by 2, break and choose another g
  	return sorted([p, q]    )
  
  
  if __name__ == "__main__":
  				import doctest
  
  				doctest.testmod()
  
  
  
style_context: 
  
  
  
  
  
  '''simple docstring'''
  
  
  import hashlib
  import importlib.util
  import json
  import os
  import pathlib
  from types import ModuleType
  
  import pytest
  import requests
  
  _lowerCamelCase				:	Optional[Any]				    =       pathlib.Path.cwd().joinpath('project_euler')
  _lowerCamelCase				:	Optional[int]				    =       pathlib.Path.cwd().joinpath(
      'scripts', 'project_euler_answers.json'
  )
  
  with open(PROJECT_EULER_ANSWERS_PATH) as file_handle:
  				_lowerCamelCase				:	dict[str, str]				    =       json.load(file_handle)
  
  
  
  
  def    __a (     UpperCAmelCase    )      ->ModuleType:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	A							  =      importlib.util.spec_from_file_location(file_path.name       ,			str(UpperCAmelCase    )    )
  	A							  =      importlib.util.module_from_spec(UpperCAmelCase    )  # type: ignore
  	spec.loader.exec_module(UpperCAmelCase    )  # type: ignore
  	return module
  
  
  
  
  def    __a (     )      ->list[pathlib.Path]:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	A							  =      []
  	for problem_dir_path in PROJECT_EULER_DIR_PATH.iterdir():
  		if problem_dir_path.is_file() or problem_dir_path.name.startswith("""_"""    ):
  			continue
  		for file_path in problem_dir_path.iterdir():
  			if file_path.suffix != ".py" or file_path.name.startswith(("""_""", """test""")    ):
  				continue
  			solution_file_paths.append(UpperCAmelCase    )
  	return solution_file_paths
  
  
  
  
  def    __a (     )      ->str:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	with open(os.environ["""GITHUB_EVENT_PATH"""]    ) as file:
  		A							  =      json.load(UpperCAmelCase    )
  	return event["pull_request"]["url"] + "/files"
  
  
  
  
  def    __a (     )      ->list[pathlib.Path]:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	A							  =      []
  	A							  =      {
  	    """Accept""": """application/vnd.github.v3+json""",
  	    """Authorization""": """token """ + os.environ["""GITHUB_TOKEN"""],
  	}
  	A							  =      requests.get(get_files_url()       ,			headers=UpperCAmelCase    ).json()
  	for file in files:
  		A							  =      pathlib.Path.cwd().joinpath(file["""filename"""]    )
  		if (
  		    filepath.suffix != ".py"
  		    or filepath.name.startswith(("""_""", """test""")    )
  		    or not filepath.name.startswith("""sol"""    )
  		):
  			continue
  		solution_file_paths.append(UpperCAmelCase    )
  	return solution_file_paths
  
  
  
  
  def    __a (     )      ->list[pathlib.Path]:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	if os.environ.get("""CI"""    ) and os.environ.get("""GITHUB_EVENT_NAME"""    ) == "pull_request":
  		# Return only if there are any, otherwise default to all solutions
  		if filepaths := added_solution_file_path():
  			return filepaths
  	return all_solution_file_paths()
  
  
  
  
  @pytest.mark.parametrize(
      """solution_path"""       ,			collect_solution_file_paths()       ,			ids=lambda UpperCAmelCase    : f"""{path.parent.name}/{path.name}"""       ,			)
  def    __a (     UpperCAmelCase    )      ->None:
  
  
  
  	"""simple docstring"""
  
  
  
  
  
  
  
  	A							  =      solution_path.parent.name[8:].zfill(3    )
  	A							  =      PROBLEM_ANSWERS[problem_number]
  	A							  =      convert_path_to_module(UpperCAmelCase    )
  	A							  =      str(solution_module.solution()    )  # type: ignore
  	A							  =      hashlib.shaaaa(answer.encode()    ).hexdigest()
  	assert (
  	    answer == expected
  	), f"""Expected solution to {problem_number} to have hash {expected}, got {answer}"""
  
  