Desmond
Desmond

Reputation: 3

Python output just shows blinking cursor

I recently started messing around with python and I wrote a program to print out the 1000th prime number but the output only shows a blinking cursor , the code is shown below:

number = 3
count= 1

while count <= 1000:   
          prime = True
          for x in range(2, number):
          if number % x == 0:
               prime= False
          if prime == True:
               count = count + 1
          if count <= 1000:
               number = number + 1

print number

Any help and concise explanation would be appreciated

Upvotes: 0

Views: 2730

Answers (1)

Inbar Rose
Inbar Rose

Reputation: 43477

edit: i just realized the problem. @tichodroma solved the problem but did so by editing the OP post. so when i got to it it was already solved, how ever, he solved it by putting the print into the loop, hence the many numbers waterfall. but it should be outside the loop so as to only show the final result. also - after looking at the OP code before edit, it was written in such a way that it was taking a long time to run, and the "blinking line" was the system working in the background

def isprime(n):
    '''check if integer n is a prime'''
    # make sure n is a positive integer
    n = abs(int(n))
    # 0 and 1 are not primes
    if n < 2:
        return False
    # 2 is the only even prime number
    if n == 2: 
        return True    
    # all other even numbers are not primes
    if not n & 1: 
        return False
    # range starts with 3 and only needs to go up the squareroot of n
    # for all odd numbers
    for x in range(3, int(n**0.5)+1, 2):
        if n % x == 0:
            return False
    return True

counter = 0
number = 0

while True:
    if isprime(number):
        counter+=1
    if counter == 10000:
        break
    number+=1

print number

Upvotes: 1

Related Questions