给定一个非负数n 。问题是检查给定数字n是否可以表示为一位数字的乘积。
例子:
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.
方法:我们必须检查数n是否比2,3,5,7外没有其他质因数。为此,我们将数字n反复除以(2、3、5、7),直到无法进一步将其除以这些数字为止。在此过程之后,如果n == 1,则可以将其表示为一位数字的乘积;否则,如果它大于1,则无法将其表示。
C++
// C++ implementation to check whether a number can be
// expressed as a product of single digit numbers
#include
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
PHP
= 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
?>
Javascript
输出:
Yes