Out of prime numbers less than 201920190 how to find those that dont have digit '7' in their str representation? I need to count the number(count) of such prime numbers that have no '7' in them.
Std sieve implementation is too slow, it just stuck computing..
def SieveOfEratosthenes(num):
prime = [True for i in range(num+1)]
# boolean array
p = 2
while (p * p <= num):
# If prime[p] is not
# changed, then it is a prime
if (prime[p] == True):
# Updating all multiples of p
for i in range(p * p, num+1, p):
prime[i] = False
p += 1
# Print all prime numbers
for p in range(2, num+1):
if prime[p]:
#here added additional check to only print those that have no digit 7
if '7' not in str(p):
print(p)
# Driver code
if __name__ == '__main__':
num = 201920190
print("Following are the prime numbers smaller"),
print("than or equal to", num)
SieveOfEratosthenes(num)
How to do it better?