Sphenic Number


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, …

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)
Examples:

30 = 2 × 3 × 5 
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).



// 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";



You can read more about this here  https://en.wikipedia.org/wiki/Sphenic_number
You can also read this article on GFG which is written by me only....
https://www.geeksforgeeks.org/sphenic-number/


Follow the blog...for more intresting topics...














Comments

Popular posts from this blog

Fibonacci numbers with help of DP