Given an array of integers (less than 10^6), the task is to find the sum of all the prime numbers which appear after every (k-1) prime numbers
i.e. every K’th prime number in the array.
Input : Array : 2, 3, 5, 7, 11 ; n=5; k=2 Output : Sum = 10 Explanation: All the elements of the array are prime. So, the prime numbers after every K intervals are 3, 7 and their sum is 10. Input : Array : 41, 23, 12, 17, 18, 19 ; n=6; k=2 Output : Sum = 42
A simple approach
We have to traverse the array and find the prime numbers after every (k-1) prime numbers. In this way, we’ll have to check every element of the array whether it is prime or not which will take more time as the size of the array increases.
We will create a sieve which will store whether a number is prime or not. Then, it can be used to check a number against prime in O(1) time. In this way, we only have to keep track of every K’th prime number and maintain the running sum.
Below is the implementation of the above approach:
# Python3 implementation of the approach
# 0 and 1 are not prime numbers
prime = False
prime = False
p = 2
while p * p <= MAX: # If prime[p] is not changed, # then it is a prime if prime[p] == True: # Update all multiples of p for i in range(p * 2, MAX + 1, p): prime[i] = False p += 1 # Compute the answer def solve(arr, n, k): # count of primes c = 0 # sum of the primes Sum = 0 # Traverse the array for i in range(0, n): # if the number is a prime if prime[arr[i]]: # increase the count c += 1 # if it is the K'th prime if c % k == 0: Sum += arr[i] c = 0 print(Sum) # Driver code if __name__ == "__main__": MAX = 1000000 prime = [True] * (MAX + 1) # Create the sieve SieveOfEratosthenes() n, k = 5, 2 arr = [2, 3, 5, 7, 11] solve(arr, n, k) # This code is contributed by Rituraj Jain [tabby title="C#"]
- Insert minimum number in array so that sum of array becomes prime
- Sum of every K’th prime number in an array
- Number of co-prime pairs in an array
- Number of prime pairs in an array
- Product of every K’th prime number in an array
- Number of 0s and 1s at prime positions in the given array
- Smallest prime number missing in an array
- Find prime number K in an array such that (A[i] % K) is maximum
- Check if LCM of array elements is divisible by a prime number or not
- Print prime numbers with prime sum of digits in an array
- Print the nearest prime number formed by adding prime numbers to N
- Check whether the sum of prime elements of the array is prime or not
- Find coordinates of a prime number in a Prime Spiral
- Check if a prime number can be expressed as sum of two Prime Numbers
- Absolute difference between the Product of Non-Prime numbers and Prime numbers of an Array
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.