Given a number n, we need to find the sum of each digits of the number till the number becomes a single digit. We need to print “yes” if the sum is a prime or “no” if it is not prime.
Examples:
Input : 5602 Output: No Explanation: Step 1- 5+6+0+2 = 13 Step 2- 1+3 = 4 4 is not prime Input : 56 Output : Yes Explanation: Step 1- 5+6 = 11 Step 2- 1+1 = 2 hence 2 is prime
The idea is simple, we can quickly find recursive sum of digits.
int recDigSum(int n) { if (n == 0) return 0; return (n % 9 == 0) ? 9 : (n % 9); }
Once, recursive sum is calculated, check if it is prime or not by simply checking if it is 2, 3, 5 or 7 (These are only single digit primes).
C++
// CPP code to check if // recursive sum of // digits is prime or not. #include<iostream> using namespace std;
// Function for recursive // digit sum int recDigSum( int n)
{ if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
} // function to check if prime // or not the single digit void check( int n)
{ // calls function which
// returns sum till
// single digit
n = recDigSum(n);
// checking prime
if (n == 2 or n == 3 or n == 5 or n == 7)
cout << "Yes" ;
else
cout << "No" ;
} // Driver code int main()
{ int n = 5602;
check(n);
} // This code is contributed by Shreyanshi. |
Java
// java code to check if // recursive sum of // digits is prime or not. import java.io.*;
class GFG
{ // Function for recursive
// digit sum
static int recDigSum( int n)
{
if (n == 0 )
return 0 ;
else
{
if (n % 9 == 0 )
return 9 ;
else
return n % 9 ;
}
}
// function to check if prime
// or not the single digit
static void check( int n)
{
// calls function which
// returns sum till
// single digit
n = recDigSum(n);
// checking prime
if (n == 2 || n == 3 || n == 5 || n == 7 )
System.out.println ( "Yes" );
else
System.out.println( "No" );
}
// Driver code
public static void main (String[] args)
{
int n = 5602 ;
check(n);
}
} // This code is contributed by vt_m |
Python
# Python code to check if recursive sum # of digits is prime or not. def recDigSum(n):
if n = = 0 :
return 0
else :
if n % 9 = = 0 :
return 9
else :
return n % 9
# function to check if prime or not # the single digit def check(n):
# calls function which returns sum
# till single digit
n = recDigSum(n)
# checking prime
if n = = 2 or n = = 3 or n = = 5 or n = = 7 :
print "Yes"
else :
print "No"
# driver code n = 5602
check(n) |
C#
// C# code to check if // recursive sum of // digits is prime or not. using System;
class GFG
{ // Function for recursive
// digit sum
static int recDigSum( int n)
{
if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
}
// function to check if prime
// or not the single digit
static void check( int n)
{
// calls function which
// returns sum till
// single digit
n = recDigSum(n);
// checking prime
if (n == 2 || n == 3
|| n == 5 || n == 7)
Console.WriteLine ( "Yes" );
else
Console.WriteLine( "No" );
}
// Driver code
public static void Main ()
{
int n = 5602;
check(n);
}
} // This code is contributed by anuj_67. |
PHP
<?php // PHP code to check if // recursive sum of // digits is prime or not. // Function for recursive // digit sum function recDigSum( $n )
{ if ( $n == 0)
return 0;
else
{
if ( $n % 9 == 0)
return 9;
else
return $n % 9;
}
} // function to check if prime // or not the single digit function check( $n )
{ // calls function which
// returns sum till
// single digit
$n = recDigSum( $n );
// checking prime
if ( $n == 2 or $n == 3 or
$n == 5 or $n == 7)
echo "Yes" ;
else
echo "No" ;
} // Driver code $n = 5602;
check( $n );
// This code is contributed by ajit. ?> |
Javascript
<script> // Javascript code to check if // recursive sum of digits is // prime or not. // Function for recursive // digit sum function recDigSum(n)
{ if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
} // Function to check if prime // or not the single digit function check(n)
{ // Calls function which
// returns sum till
// single digit
n = recDigSum(n);
// Checking prime
if (n == 2 || n == 3 ||
n == 5 || n == 7)
document.write( "Yes" );
else
document.write( "No" );
} // Driver code let n = 5602; check(n); // This code is contributed by susmitakundugoaldanga </script> |
Output:
No