A Sphenic Number is a positive integer **n** which is product of exactly three distinct primes. The first few sphenic numbers are 30, 42, 66, 70, 78, 102, 105, 110, 114, …

Given a number **n**, determine whether it is a Sphenic Number or not.

Examples:

Input : 30 Output : Yes Explanation : 30 is the smallest Sphenic number, 30 = 2 × 3 × 5 the product of the smallest three primes Input : 60 Output : No Explanation : 60 = 2^{2}x 3 x 5 has exactly 3 prime factors but is not a sphenic number

Sphenic number can be checked by fact that every sphenic number will have exactly 8 divisor SPHENIC NUMBER

So first We will try to find if the number is having exactly 8 divisors if not then simply answer is no.If there are exactly 8 divisors then we will confirm weather the first 3 digits after 1 are prime or not.

Eg. 30 (sphenic number)

30=p*q*r(i.e p,q and r are three distinct prime no and their product are 30)

the set of divisor is (1,2,3,5,6,10,15,30).

Below is the C++ implementation of the idea.

`// C++ program to check whether a number is a ` `// Sphenic number or not ` `#include<bits/stdc++.h> ` `using` `namespace` `std; ` `//create a global array of size 10001; ` `bool` `arr[1001]; ` `// This functions finds all primes smaller than 'limit' ` `// using simple sieve of eratosthenes. ` `void` `simpleSieve() ` `{ ` ` ` `// initialize all entries of it as true. A value ` ` ` `// in mark[p] will finally be false if 'p' is Not ` ` ` `// a prime, else true. ` ` ` `memset` `(arr,` `true` `,` `sizeof` `(arr)); ` ` ` ` ` `// One by one traverse all numbers so that their ` ` ` `// multiples can be marked as composite. ` ` ` `for` `(` `int` `p=2;p*p<1001;p++) ` ` ` `{ ` ` ` `// If p is not changed, then it is a prime ` ` ` `if` `(arr[p]) ` ` ` `{` `// Update all multiples of p ` ` ` `for` `(` `int` `i=p*2;i<1001;i=i+p) ` ` ` `arr[i]=` `false` `; ` ` ` `} ` ` ` `} ` `} ` `int` `find_sphene(` `int` `N) ` `{ ` ` ` `int` `arr1[8]={0}; ` `//to store the 8 divisors ` ` ` `int` `count=0; ` `//to count the number of divisor ` ` ` `int` `j=0; ` ` ` `for` `(` `int` `i=1;i<=N;i++) ` ` ` `{ ` ` ` `if` `(N%i==0 &&count<9) ` ` ` `{ ` ` ` `count++; ` ` ` `arr1[j++]=i; ` ` ` `} ` ` ` `} ` ` ` `//finally check if there re 8 divisor and all the numbers are distinct prime no return 1 ` ` ` `//else return 0 ` ` ` `if` `(count==8 && (arr[arr1[1]] && arr[arr1[2]] && arr[arr1[3]])) ` ` ` `return` `1; ` ` ` `return` `0; ` `} ` ` ` `// Driver program to test above function ` `int` `main() ` `{ ` ` ` `int` `n = 60; ` ` ` `simpleSieve(); ` ` ` `int` `ans=find_sphene(n); ` ` ` `if` `(ans) ` ` ` `cout<<` `"Yes"` `; ` ` ` `else` ` ` `cout<<` `"NO"` `; ` `} ` |

*chevron_right*

*filter_none*

**Output:**

Yes

**References:**

1. OEIS

2. https://en.wikipedia.org/wiki/Sphenic_number

This article is contributed by **mra11145**. 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.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Number of factors of very large number N modulo M where M is any prime number
- Find minimum number to be divided to make a number a perfect square
- Querying maximum number of divisors that a number in a given range has
- Super Ugly Number (Number whose prime factors are in given set)
- Number with maximum number of prime factors
- Determine whether a given number is a Hyperperfect Number
- Total number of divisors for a given number
- Check if a number is divisible by all prime divisors of another number
- Largest number less than N whose each digit is prime number
- Check if given number is Emirp Number or not
- k-Rough Number or k-Jagged Number
- Queries on sum of odd number digit sums of all the factors of a number
- Number which has the maximum number of distinct prime factors in the range M to N
- First triangular number whose number of divisors exceeds N
- Find the largest good number in the divisors of given number N
- Check whether the given number is Euclid Number or not
- Represent a number as a sum of maximum possible number of Prime Numbers
- Check if a number is an Unusual Number or not
- Check if a number is a Trojan Number
- Check whether a number is Non-hypotenuse number