def sieve_of_eratosthene(num):
    """
    Computes prime numbers using sieve of Eratosthenes.

    :param num: The number to which you need to find prime numbers.

    :returns: List of prime numbers.
    """
    sieve = list(range(num))
    sieve[1] = 0  # All non-prime nums we'll replace by zeros.

    for checked_num in sieve[2:]:
        if checked_num != 0:
            multiplier = checked_num * 2
            while multiplier < num:
                sieve[multiplier] = 0
                multiplier += checked_num
    return [n for n in sieve if n != 0]