code: def primes(start: int = 1, end: int = 999) -> List[int]:
          
          # TODO: It should generate random primes with passed length.
          sieve_size = (end // 2 - 1) if end % 2 == 0 else (end // 2)
          sieve = [True] * sieve_size
  
          primes = []  # list of primes
          # add 2 to the list if it's in the given range
          if end >= 2:
              primes.append(2)
          for i in range(sieve_size):
              if sieve[i]:
                  value_at_i = i * 2 + 3
                  primes.append(value_at_i)
                  for j in range(i, sieve_size, value_at_i):
                      sieve[j] = False
  
          chop_index = 0
          for i in range(len(primes)):
              if primes[i] >= start:
                  chop_index = i
                  break
          return primes[chop_index:]
docs: Generate a list of prime numbers.
  
          :param start: First value of range.
          :param end: Last value of range.
          :return: A list of prime numbers from start to end.