Count Pairs of Prime Numbers Python
- Get link
- X
- Other Apps
PROGRAM TO COUNT PAIRS WITH SUM AS A PRIME NUMBER AND LESS THAN N
def SieveOfSundaram(marked, nNew): # Main logic of Sundaram. Mark all numbers # of the form i + j + 2ij as true where # 1 <= i <= j for i in range(1, nNew + 1): for j in range(i, nNew): if i + j + 2 * i * j > nNew: break marked[i + j + 2 * i * j] = True # Returns number of pairs with fiven conditions. def countPrimePairs(n): # In general Sieve of Sundaram, produces # primes smaller than (2*x + 2) for a number # given number x. Since we want primes smaller # than n, we reduce n to half nNew = (n - 2) // 2 # This array is used to separate numbers # of the form i+j+2ij from others where # 1 <= i <= j marked = [ False for i in range(nNew + 1)] SieveOfSundaram(marked, nNew) count, prime_num = 0, 0 # Find primes. Primes are of the form # 2*i + 1 such that marked[i] is false. for i in range(1, nNew + 1): if (marked[i] == False): prime_num = 2 * i + 1 # For a given prime number p # number of distinct pairs(i,j) # where (i+j) = p are p/2 count = count + (prime_num // 2) return count # Driver Code n = 12print("Number of prime pairs: ", countPrimePairs(n)) OUTPUT
Number of prime pairs: 11
Comments
Post a Comment