Can anyone perhaps teach me how to further optimize this 'print up to the nth prime number' script?
I'm a 17 year old getting started with programming with the help of the Python programming language.

I've been seeking to optimize this algorithm, perhaps by eliminating one of the loops, or with a better test to check for prime numbers.

Trying to calculate and display 100000 prime numbers has the script pausing for about 6 seconds as it populates the list with primes before the primes list is returned to the console as output.

I've been experimenting with using

    print odd,

to simply print every found prime number, which is faster for smaller inputs like n = 1000, but for n = 1000000 the list itself prints much faster (both in the python shell and in the console).

Perhaps the entire code/algorithm should be revamped, but the script should remain essentially the same: The user types in the number of prime numbers to be printed (n) and the script returns all prime numbers up to the nth prime number.

    from time import time
    odd = 1
    primes = [2]
    n = input("Number of prime numbers to print: ")
    clock = time()
    def isPrime(number):
        global primes
        for i in primes:
            if i*i > number:
                return True
            if number%i is 0:
                return False
    while len(primes) < n:
        odd += 2
        if isPrime(odd):
            primes += [odd]
    print primes
    clock -= time()
    print "\n", -clock
    raw_input()



Can anyone perhaps teach me how to further optimize this 'print up to the nth prime number' script?
===

I'm a 17 year old getting started with programming with the help of the Python programming language.

I've been seeking to optimize this algorithm, perhaps by eliminating one of the loops, or with a better test to check for prime numbers.

Trying to calculate and display 100000 prime numbers has the script pausing for about 6 seconds as it populates the list with primes before the primes list is returned to the console as output.

I've been experimenting with using

    print odd,

to simply print every found prime number, which is faster for smaller inputs like n = 1000, but for n = 1000000 the list itself prints much faster (both in the python shell and in the console).

Perhaps the entire code/algorithm should be revamped, but the script should remain essentially the same: The user types in the number of prime numbers to be printed (n) and the script returns all prime numbers up to the nth prime number.

    from time import time
    odd = 1
    primes = [2]
    n = input("Number of prime numbers to print: ")
    clock = time()
    def isPrime(number):
        global primes
        for i in primes:
            if i*i > number:
                return True
            if number%i is 0:
                return False
    while len(primes) < n:
        odd += 2
        if isPrime(odd):
            primes += [odd]
    print primes
    clock -= time()
    print "\n", -clock
    raw_input()


