Naive Approach: A simple solution is to traverse the array and do a primality test on every element. If the element is not prime nor 1, multiply it to the running product.Time Complexity – O(Nsqrt(N))

Efficient Approach: Using Sieve of Eratosthenes generate a boolean vector upto the size of the maximum element from the array which can be used to check whether a number is prime or not. Also add 0 and 1 as a prime so that they don’t get counted as composite numbers. Now traverse the array and find the product of those elements which are composite using the generated boolean vector.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. 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.