prime numbers are surprisingly easy to check for. to check if a number is prime, we divide it by it’s factors. 1 is not prime
def is_prime(num): if num > 1: for i in range(2, num): if num%i == 0: return False return True
we take all numbers from 2 to the num and we start dividing by 2, 3, 4, 5, …
but really we need only to go to half the numbers, upto n//2 + 1
def is_prime(num): if num > 1: for i in range(2, (num//2)+1): if num%i == 0: return False return True
then we can use it like that:
for i in range(100): prime = is_prime(i) if prime: print(i)
for primes upto 100. pretty easy.
checking for the first time there is a difference of 100
primes = [] for i in range(10000): prime = is_prime(i) if prime: primes.append(i) def first_100_diff(primes): for primeA in primes: for primeB in primes: if abs(primeA - primeB) == 100: print(primeA, primeB) return first_100_diff(primes)
the above checks the first time there is a difference of 100. modify the loop to check for the next 10 occurances.