'''simple docstring'''

import math



def  _lowerCAmelCase				(				__a      )  ->      bool:
     '''simple docstring'''







     if 1 < number < 4:
          # 2 and 3 are primes
          return True
     elif number < 2 or number % 2 == 0 or number % 3 == 0:
          # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
          return False

     # All primes number are in format of 6k +/- 1
     for i in range(5			,      int(math.sqrt(__a      ) + 1      )			,      6      ):
          if number % i == 0 or number % (i + 2) == 0:
               return False
     return True



def  _lowerCAmelCase				(				__a = 60_08_51_47_51_43      )  ->      int:
     '''simple docstring'''







     try:
          _UpperCamelCase  :Union[str, Any]       =int(__a      )
     except (TypeError, ValueError):
          raise TypeError("""Parameter n must be int or castable to int."""      )
     if n <= 0:
          raise ValueError("""Parameter n must be greater than or equal to one."""      )
     _UpperCamelCase  :Optional[Any]       =0
     if is_prime(__a      ):
          return n
     while n % 2 == 0:
          n //= 2
     if is_prime(__a      ):
          return n
     for i in range(3			,      int(math.sqrt(__a      )      ) + 1			,      2      ):
          if n % i == 0:
               if is_prime(n // i      ):
                    _UpperCamelCase  :Dict       =n // i
                    break
               elif is_prime(__a      ):
                    _UpperCamelCase  :str       =i
     return max_number


if __name__ == "__main__":
      print(f"{solution() = }")
"""simple docstring"""


import bsa
import requests







def    UpperCAmelCase       (						UpperCAmelCase   )							-> dict[str, str]:
     return {
         "name": soup.ha.a.text,
         "genre": soup.find('span'		,   class_='genre'   ).text.strip(),
         "rating": soup.strong.text,
         "page_link": f'https://www.imdb.com{soup.a.get("href"   )}',
     }







def    UpperCAmelCase       (						UpperCAmelCase = 5   )							-> tuple:
     snake_case_   			=   int(float(UpperCAmelCase   )   )
     if num_movies < 1:
          return ()
     snake_case_   			=   (
         'https://www.imdb.com/search/title?title_type='
         f'feature&sort=num_votes,desc&count={num_movies}'
     )
     snake_case_   			=   bsa.BeautifulSoup(requests.get(UpperCAmelCase   ).content		,   'html.parser'   )
     return tuple(
         get_movie_data_from_soup(UpperCAmelCase   )
         for movie in source.find_all('div'		,   class_='lister-item mode-advanced'   )   )


if __name__ == "__main__":
    import json

    __UpperCamelCase										=     int(input('''How many movies would you like to see? '''))
    print(
        ''', '''.join(
            json.dumps(movie, indent=4) for movie in get_imdb_top_movies(num_movies)
        )
    )

