code: from __future__ import annotations
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	list[int]				):
         _UpperCamelCase     :       Tuple  						=  [0] * len(lowercase_				)
         for i in range(1		,						len(lowercase_				)				):
                _UpperCamelCase     :       Tuple  						=  duration_times[i - 1] + waiting_times[i - 1]
         return waiting_times
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	list[int]		,						lowercase_:	list[int]				):
         return [
             duration_time + waiting_times[i]
             for i, duration_time in enumerate(lowercase_				)
         ]
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	list[int]				):
         return sum(lowercase_				) / len(lowercase_				)
  
  
  def SCREAMING_SNAKE_CASE				(     lowercase_:	list[int]				):
         return sum(lowercase_				) / len(lowercase_				)
  
  
  if __name__ == "__main__":
   # process id's
   UpperCAmelCase					=				[1, 2, 3]
  
   # ensure that we actually have processes
   if len(processes) == 0:
    print('''Zero amount of processes''')
    raise SystemExit(0)
  
   # duration time of all processes
   UpperCAmelCase					=				[19, 8, 9]
  
   # ensure we can match each id to a duration time
   if len(duration_times) != len(processes):
    print('''Unable to match all id\'s with their duration time''')
    raise SystemExit(0)
  
   # get the waiting times and the turnaround times
   UpperCAmelCase					=				calculate_waiting_times(duration_times)
   UpperCAmelCase					=				calculate_turnaround_times(duration_times, waiting_times)
  
   # get the average times
   UpperCAmelCase					=				calculate_average_waiting_time(waiting_times)
   UpperCAmelCase					=				calculate_average_turnaround_time(turnaround_times)
  
   # print all the results
   print('''Process ID\tDuration Time\tWaiting Time\tTurnaround Time''')
   for i, process in enumerate(processes):
    print(
        f'''{process}\t\t{duration_times[i]}\t\t{waiting_times[i]}\t\t'''
        f'''{turnaround_times[i]}'''
    )
   print(f'''Average waiting time = {average_waiting_time}''')
   print(f'''Average turn around time = {average_turnaround_time}''')
  
  
  
  
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()
  
  
  
  