Open In App

Recursive sum of digits of a number is prime or not

Last Updated : 28 Apr, 2021
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
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


 


Next Article

Similar Reads