code: import math
  from timeit import timeit
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         _UpperCamelCase     :       Tuple  						=  0
         _UpperCamelCase     :       Union[str, Any]  						=  abs(snake_case__				)
         while True:
                _UpperCamelCase     :       Dict  						=  n // 10
                digits += 1
                if n == 0:
                       break
         return digits
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         return 1 if n == 0 else math.floor(math.log(abs(snake_case__				)		,						10				) + 1				)
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         return len(str(abs(snake_case__				)				)				)
  
  
  def SCREAMING_SNAKE_CASE				(     ):
         from collections.abc import Callable
  
         def benchmark_a_function(lowercase_:	Callable		,						lowercase_:	int				) -> None:
                _UpperCamelCase     :       Any  						=  F"{func.__name__}({value})"
                _UpperCamelCase     :       List[str]  						=  timeit(F"__main__.{call}"		,						setup='import __main__'				)
                print(F"{call}: {func(snake_case__				)} -- {timing} seconds"				)
  
         for value in (262144, 1125899906842624, 1267650600228229401496703205376):
                for func in (num_digits, num_digits_fast, num_digits_faster):
                       benchmark_a_function(snake_case__		,						snake_case__				)
                print()
  
  
  if __name__ == "__main__":
   import doctest
  
   doctest.testmod()
   benchmark()
  
  
  
  
style_context: import math
  from collections.abc import Generator
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         _UpperCamelCase     :       Generator  						=  (i for i in range(1		,						(max_n + 1)				))
         for i in (n for n in numbers if n > 1):
                for j in range(2		,						lowercase_				):
                       if (i % j) == 0:
                              break
                else:
                       yield i
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         _UpperCamelCase     :       Generator  						=  (i for i in range(1		,						(max_n + 1)				))
         for i in (n for n in numbers if n > 1):
                # only need to check for factors up to sqrt(i)
                _UpperCamelCase     :       Any  						=  int(math.sqrt(lowercase_				)				) + 1
                for j in range(2		,						lowercase_				):
                       if (i % j) == 0:
                              break
                else:
                       yield i
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	int				):
         _UpperCamelCase     :       Generator  						=  (i for i in range(1		,						(max_n + 1)		,						2				))
         # It's useless to test even numbers as they will not be prime
         if max_n > 2:
                yield 2  # Because 2 will not be tested, it's necessary to yield it now
         for i in (n for n in numbers if n > 1):
                _UpperCamelCase     :       Tuple  						=  int(math.sqrt(lowercase_				)				) + 1
                for j in range(3		,						lowercase_		,						2				):
                       # As we removed the even numbers, we don't need them now
                       if (i % j) == 0:
                              break
                else:
                       yield i
  
  
  def SCREAMING_SNAKE_CASE				(     ):
         from timeit import timeit
  
         _UpperCamelCase     :       Optional[Any]  						=  'from __main__ import slow_primes, primes, fast_primes'
         print(timeit('slow_primes(1_000_000_000_000)'		,						setup=lowercase_		,						number=1000000				)				)
         print(timeit('primes(1_000_000_000_000)'		,						setup=lowercase_		,						number=1000000				)				)
         print(timeit('fast_primes(1_000_000_000_000)'		,						setup=lowercase_		,						number=1000000				)				)
  
  
  if __name__ == "__main__":
   UpperCAmelCase					=				int(input('''Calculate primes up to:\n>> ''').strip())
   for ret in primes(number):
    print(ret)
   benchmark()
  
  
  
  