Reputation: 59
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
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
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
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