A.Brusola
A.Brusola

Reputation: 59

How can I display the first 25 prime numbers?

How can I display the first 25 integer prime numbers in the given interval? I can't find a way to limit it to 25 integer prime numbers.

minimum = 1000000000
maximum = 9999999999
print ("The first 25 10-digit prime numbers are:")
for num in range (minimum, maximum + 1):
    if num > 1:
        for i in range (2, num):
            if (num % i) == 0:
                break
    else:
        print(num)

Upvotes: 1

Views: 1175

Answers (3)

No.BoD
No.BoD

Reputation: 151

you have to use a counter to store how many prime numbers you've found.

minimum = 1000000000
maximum = 9999999999
print ("The first 25 10-digit prime numbers are:")
counter = 0
for num in range (minimum, maximum + 1):
    if counter == 25: break
    if num > 3:
        for i in range (2, int(num/2)): # for optimization
            if (num % i) == 0:
                break
        else:
            counter += 1
            print(counter,num)
    else:
        counter += 1
        print(counter,num)

here is the more optimized code with the hints in the comments:

import math
minimum = 1000000000
maximum = 9999999999
print ("The first 25 10-digit prime numbers are:")
counter = 0
for num in range (minimum, maximum + 1):
    if counter == 25: break
    if num > 3:
        if (num % 2) != 0:
            for i in range (3, math.ceil(math.sqrt(num)), 2):
                if (num % i) == 0:
                    break
            else:
                counter += 1
                print(counter,num)
    else:
        counter += 1
        print(counter,num)

Upvotes: 4

Lego
Lego

Reputation: 135

If nothing else, you could use a variable to keep track of how many you've printed and break from the outer loop when that hits 25.

Here's an example, added to your code.

minimum = 1000000000
maximum = 9999999999
printed = 0
print ("The first 25 10-digit prime numbers are:")
for num in range (minimum, maximum + 1):
    if num > 1:
        for i in range (2, num):
            if (num % i) == 0:
                break
    else:
        print(num)
        printed+= 1

    if printed >= 25:
        break

Upvotes: 2

Underoos
Underoos

Reputation: 5190

You can try this.

from sympy import isprime
i=1
count = 0
while count < 25:
    if isprime(i):
        print(i)
        count += 1
    i += 1

Upvotes: 1

Related Questions