Check whether a number can be expressed as a product of single digit numbers
Given a non-negative number n. The problem is to check whether the given number n can be expressed as a product of single digit numbers or not.
Examples:
Input : n = 24
Output : Yes
Different combinations are: (8*3) and (6*4)
Input : 68
Output : No
To represent 68 as product of number, 17 must be included which is a two digit number.
Approach: We have to check whether the number n has no prime factors other than 2, 3, 5, 7. For this we repeatedly divide the number n by (2, 3, 5, 7) until it cannot be further divided by these numbers. After this process if n == 1, then it can be expressed as a product of single digit numbers, else if it is greater than 1, then it cannot be expressed.
C++
#include <bits/stdc++.h>
using namespace std;
#define SIZE 4
bool productOfSingelDgt( int n)
{
if (n >= 0 && n <= 9)
return true ;
int prime[] = { 2, 3, 5, 7 };
for ( int i = 0; i < SIZE && n > 1; i++)
while (n % prime[i] == 0)
n = n / prime[i];
return (n == 1);
}
int main()
{
int n = 24;
productOfSingelDgt(n)? cout << "Yes" :
cout << "No" ;
return 0;
}
|
Java
import java.util.*;
class GFG
{
static int SIZE = 4 ;
static boolean productOfSingelDgt( int n)
{
if (n >= 0 && n <= 9 )
return true ;
int [] prime = { 2 , 3 , 5 , 7 };
for ( int i = 0 ; i < SIZE && n > 1 ; i++)
while (n % prime[i] == 0 )
n = n / prime[i];
return (n == 1 );
}
public static void main (String[] args)
{
int n = 24 ;
if (productOfSingelDgt(n))
System.out.println( "Yes" );
else
System.out.println( "No" );
}
}
|
Python3
SIZE = 4
def productOfSingelDgt(n):
if n > = 0 and n < = 9 :
return True
prime = [ 2 , 3 , 5 , 7 ]
i = 0
while i < SIZE and n > 1 :
while n % prime[i] = = 0 :
n = n / prime[i]
i + = 1
return n = = 1
n = 24
if productOfSingelDgt(n):
print ( "Yes" )
else :
print ( "No" )
|
C#
using System;
class GFG {
static int SIZE = 4;
static bool productOfSingelDgt( int n)
{
if (n >= 0 && n <= 9)
return true ;
int [] prime = { 2, 3, 5, 7 };
for ( int i = 0; i < SIZE && n > 1; i++)
while (n % prime[i] == 0)
n = n / prime[i];
return (n == 1);
}
public static void Main()
{
int n = 24;
if (productOfSingelDgt(n))
Console.WriteLine( "Yes" );
else
Console.WriteLine( "No" );
}
}
|
Javascript
<script>
const SIZE = 4;
function productOfSingelDgt(n)
{
if (n >= 0 && n <= 9)
return true ;
var prime = [ 2, 3, 5, 7 ];
for (i = 0; i < SIZE && n > 1; i++)
while (n % prime[i] == 0)
n = n / prime[i];
return (n == 1);
}
var n = 24;
if (productOfSingelDgt(n))
document.write( "Yes" );
else
document.write( "No" );
</script>
|
PHP
<?php
function productOfSingelDgt( $n , $SIZE )
{
if ( $n >= 0 && $n <= 9)
return true;
$prime = array (2, 3, 5, 7);
for ( $i = 0; $i < $SIZE && $n > 1; $i ++)
while ( $n % $prime [ $i ] == 0)
$n = $n / $prime [ $i ];
return ( $n == 1);
}
$SIZE = 4;
$n = 24;
if (productOfSingelDgt( $n , $SIZE ))
echo "Yes" ;
else
echo "No" ;
?>
|
Output:
Yes
Time Complexity: O(num), where num is the number of prime factors (2, 3, 5, 7) of n.
Auxiliary space: O(1) as it is using constant space
Last Updated :
03 Oct, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...