Recursive sum of digits of a number is prime or not
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++
#include<iostream>
using namespace std;
int recDigSum( int n)
{
if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
}
void check( int n)
{
n = recDigSum(n);
if (n == 2 or n == 3 or n == 5 or n == 7)
cout << "Yes" ;
else
cout << "No" ;
}
int main()
{
int n = 5602;
check(n);
}
|
Java
import java.io.*;
class GFG
{
static int recDigSum( int n)
{
if (n == 0 )
return 0 ;
else
{
if (n % 9 == 0 )
return 9 ;
else
return n % 9 ;
}
}
static void check( int n)
{
n = recDigSum(n);
if (n == 2 || n == 3 || n == 5 || n == 7 )
System.out.println ( "Yes" );
else
System.out.println( "No" );
}
public static void main (String[] args)
{
int n = 5602 ;
check(n);
}
}
|
Python
def recDigSum(n):
if n = = 0 :
return 0
else :
if n % 9 = = 0 :
return 9
else :
return n % 9
def check(n):
n = recDigSum(n)
if n = = 2 or n = = 3 or n = = 5 or n = = 7 :
print "Yes"
else :
print "No"
n = 5602
check(n)
|
C#
using System;
class GFG
{
static int recDigSum( int n)
{
if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
}
static void check( int n)
{
n = recDigSum(n);
if (n == 2 || n == 3
|| n == 5 || n == 7)
Console.WriteLine ( "Yes" );
else
Console.WriteLine( "No" );
}
public static void Main ()
{
int n = 5602;
check(n);
}
}
|
PHP
<?php
function recDigSum( $n )
{
if ( $n == 0)
return 0;
else
{
if ( $n % 9 == 0)
return 9;
else
return $n % 9;
}
}
function check( $n )
{
$n = recDigSum( $n );
if ( $n == 2 or $n == 3 or
$n == 5 or $n == 7)
echo "Yes" ;
else
echo "No" ;
}
$n = 5602;
check( $n );
?>
|
Javascript
<script>
function recDigSum(n)
{
if (n == 0)
return 0;
else
{
if (n % 9 == 0)
return 9;
else
return n % 9;
}
}
function check(n)
{
n = recDigSum(n);
if (n == 2 || n == 3 ||
n == 5 || n == 7)
document.write( "Yes" );
else
document.write( "No" );
}
let n = 5602;
check(n);
</script>
|
Output:
No
Last Updated :
28 Apr, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...