code: def blum_blum_shub(seed, amount, prime0, prime1):
      
      if amount == 0:
          return []
  
      assert (prime0 % 4 == 3 and
              prime1 % 4 == 3)  # primes must be congruent 3 mod 4
  
      mod = prime0 * prime1
      rand = [seed]
  
      for _ in range(amount - 1):
          last_num = rand[len(rand) - 1]
          next_num = (last_num * last_num) % mod
          rand.append(next_num)
  
      return rand
docs: Creates pseudo-number generator
  
      :param seed: seeder
      :param amount: amount of number to generate
      :param prime0: one prime number
      :param prime1: the second prime number
      :return: pseudo-number generator