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++
// C++ implementation to check whether a number can be // expressed as a product of single digit numbers #include <bits/stdc++.h> using namespace std; // Number of single digit prime numbers #define SIZE 4 // function to check whether a number can be // expressed as a product of single digit numbers bool productOfSingelDgt( int n) { // if 'n' is a single digit number, then // it can be expressed if (n >= 0 && n <= 9) return true ; // define single digit prime numbers array int prime[] = { 2, 3, 5, 7 }; // repeatedly divide 'n' by the given prime // numbers until all the numbers are used // or 'n' > 1 for ( int i = 0; i < SIZE && n > 1; i++) while (n % prime[i] == 0) n = n / prime[i]; // if true, then 'n' can // be expressed return (n == 1); } // Driver program to test above int main() { int n = 24; productOfSingelDgt(n)? cout << "Yes" : cout << "No" ; return 0; } |
Java
// Java implementation to check whether // a number can be expressed as a // product of single digit numbers import java.util.*; class GFG { // Number of single digit prime numbers static int SIZE = 4 ; // function to check whether a number can // be expressed as a product of single // digit numbers static boolean productOfSingelDgt( int n) { // if 'n' is a single digit number, // then it can be expressed if (n >= 0 && n <= 9 ) return true ; // define single digit prime numbers // array int [] prime = { 2 , 3 , 5 , 7 }; // repeatedly divide 'n' by the given // prime numbers until all the numbers // are used or 'n' > 1 for ( int i = 0 ; i < SIZE && n > 1 ; i++) while (n % prime[i] == 0 ) n = n / prime[i]; // if true, then 'n' can // be expressed return (n == 1 ); } // Driver program to test above public static void main (String[] args) { int n = 24 ; if (productOfSingelDgt(n)) System.out.println( "Yes" ); else System.out.println( "No" ); } } /* This code is contributed by Mr. Somesh Awasthi */ |
Python3
# Python3 program to check # whether a number can be # expressed as a product of # single digit numbers # Number of single digit # prime numbers SIZE = 4 # function to check whether # a number can be # expressed as a product # of single digit numbers def productOfSingelDgt(n): # if 'n' is a single digit # number, then # it can be expressed if n > = 0 and n < = 9 : return True # define single digit prime # numbers array prime = [ 2 , 3 , 5 , 7 ] # repeatedly divide 'n' by # the given prime # numbers until all the # numbers are used # or 'n' > 1 i = 0 while i < SIZE and n > 1 : while n % prime[i] = = 0 : n = n / prime[i] i + = 1 # if true, then 'n' can # be expressed return n = = 1 n = 24 if productOfSingelDgt(n): print ( "Yes" ) else : print ( "No" ) # This code is contributed # by Shreyanshi Arun. |
C#
// C# implementation to check whether // a number can be expressed as a // product of single digit numbers using System; class GFG { // Number of single digit prime numbers static int SIZE = 4; // function to check whether a number can // be expressed as a product of single // digit numbers static bool productOfSingelDgt( int n) { // if 'n' is a single digit number, // then it can be expressed if (n >= 0 && n <= 9) return true ; // define single digit prime numbers // array int [] prime = { 2, 3, 5, 7 }; // repeatedly divide 'n' by the given // prime numbers until all the numbers // are used or 'n' > 1 for ( int i = 0; i < SIZE && n > 1; i++) while (n % prime[i] == 0) n = n / prime[i]; // if true, then 'n' can // be expressed return (n == 1); } // Driver program to test above public static void Main() { int n = 24; if (productOfSingelDgt(n)) Console.WriteLine( "Yes" ); else Console.WriteLine( "No" ); } } // This code is contributed by Sam007 |
Javascript
<script> // javascript implementation to check whether // a number can be expressed as a // product of single digit numbers // Number of single digit prime numbers const SIZE = 4; // function to check whether a number can // be expressed as a product of single // digit numbers function productOfSingelDgt(n) { // if 'n' is a single digit number, // then it can be expressed if (n >= 0 && n <= 9) return true ; // define single digit prime numbers // array var prime = [ 2, 3, 5, 7 ]; // repeatedly divide 'n' by the given // prime numbers until all the numbers // are used or 'n' > 1 for (i = 0; i < SIZE && n > 1; i++) while (n % prime[i] == 0) n = n / prime[i]; // if true, then 'n' can // be expressed return (n == 1); } // Driver program to test above var n = 24; if (productOfSingelDgt(n)) document.write( "Yes" ); else document.write( "No" ); // This code is contributed by gauravrajput1 </script> |
PHP
<?php // PHP implementation to check // whether a number can be // expressed as a product of // single digit numbers // function to check whether // a number can be expressed //as a product of single // digit numbers function productOfSingelDgt( $n , $SIZE ) { // if 'n' is a single // digit number, then // it can be expressed if ( $n >= 0 && $n <= 9) return true; // define single digit // prime numbers array $prime = array (2, 3, 5, 7); // repeatedly divide 'n' // by the given prime // numbers until all // the numbers are used // or 'n' > 1 for ( $i = 0; $i < $SIZE && $n > 1; $i ++) while ( $n % $prime [ $i ] == 0) $n = $n / $prime [ $i ]; // if true, then 'n' can // be expressed return ( $n == 1); } // Driver Code $SIZE = 4; $n = 24; if (productOfSingelDgt( $n , $SIZE )) echo "Yes" ; else echo "No" ; // This code is contributed by Sam007 ?> |
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
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!