Open In App

Recursive sum of digits of a number is prime or not

Improve
Improve
Like Article
Like
Save
Share
Report

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

 



Last Updated : 28 Apr, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads