Check if a number is a Mystery Number


25 May, 2021

Given a number, check whether it is a mystery number or not. A mystery number is a number that can be expressed as the sum of two numbers and those two numbers should be the reverse of each other.
Examples:
Input : n = 121 Output : 29 92
Input : n = 22 Output : 11 11  
Source: Paytm Interview Set 23The idea is to try every possible pair smaller than or equal to n.
Below is the implementation of the above approach. 
C++
Java
Python3
C#
PHP
Javascript
 

 
 










// C++ implementation of above approach
#include <bits/stdc++.h>
using namespace std;
 
// Finds reverse of given num x.
int reverseNum(int x) 
{
    string s = to_string(x);
    reverse(s.begin(), s.end());
    stringstream ss(s); 
    int rev = 0; 
    ss >> rev;
    return rev; 
}
 
bool isMysteryNumber(int n)
{
    for (int i=1; i <= n/2; i++) 
    {
        // if found print the  pair, return 
        int j = reverseNum(i);
        if (i + j == n) 
        {
            cout << i << " " << j; 
            return true;
        }
    }
 
    cout << "Not a Mystery Number";
    return false;
}
 
int main()
{
    int n = 121;
    isMysteryNumber(n);
    return 0;
}






 

 
 










// Java implementation of above approach
 
class GFG
{
    // Finds reverse of given num x.
    static int reverseNum(int x) 
    {
        String s = Integer.toString(x);
        String str="";
        for(int i=s.length()-1;i>=0;i--)
        {
             
            str=str+s.charAt(i);
        }
         
        int rev=Integer.parseInt(str);
        return rev; 
    }
     
    static boolean isMysteryNumber(int n)
    {
        for (int i=1; i <= n/2; i++) 
        {
            // if found print the pair, return 
            int j = reverseNum(i);
            if (i + j == n) 
            {
                System.out.println( i + " " + j); 
                return true;
            }
        }
     
         System.out.println("Not a Mystery Number");
        return false;
    }
     
    public static void main(String []args)
    {
        int n = 121;
        isMysteryNumber(n);
     
    }
 
}
 
// This code is contributed by ihritik






 

 
 










# Python3 implementation of above approach
 
# Finds reverse of given num x.
def reverseNum(x):
    s = str(x)
    s = s[::-1]
    return int(s)
     
def isMysteryNumber(n):
     
    for i in range(1, n // 2 + 1):
         
        # if found print the pair, return
        j = reverseNum(i)
         
        if i + j == n:
            print(i, j)
            return True
     
    print("Not a Mystery Number")
    return False
 
# Driver Code
n = 121
isMysteryNumber(n)
 
# This code is contributed by 
# Mohit Kumar 29 (IIIT gwalior)






 

 
 










// C# implementation of above approach
 
using System;
class GFG
{
    // Finds reverse of given num x.
    static int reverseNum(int x) 
    {
        string s = x.ToString();
        string str="";
        for(int i=s.Length-1;i>=0;i--)
        {
             
            str=str+s[i];
        }
         
        int rev=Int32.Parse(str);
        return rev; 
    }
     
    static bool isMysteryNumber(int n)
    {
        for (int i=1; i <= n/2; i++) 
        {
            // if found print the pair, return 
            int j = reverseNum(i);
            if (i + j == n) 
            {
                Console.WriteLine( i + " " + j); 
                return true;
            }
        }
     
        Console.WriteLine("Not a Mystery Number");
        return false;
    }
     
    public static void Main()
    {
        int n = 121;
        isMysteryNumber(n);
     
    }
 
}
 
// This code is contributed by ihritik






 

 
 










<?php 
// PHP implementation of above approach
  
// Finds reverse of given num x.
function reverseNum($x) 
{
    $s = (string)$x;
    $s = strrev($s);
    $rev = (int)$s;
    return $rev;
}
  
function isMysteryNumber($n)
{
    for ($i=1; $i <= $n/2; $i++) 
    {
        // if found print the  pair, return 
        $j = reverseNum($i);
        if ($i + $j == $n) 
        {
            echo $i . " ".$j; 
            return true;
        }
    }
  
    echo "Not a Mystery Number";
    return false;
}
  
 
$n = 121;
isMysteryNumber($n);
return 0;
// This code is contribute by Ita_c.
?>






 

 
 










<script>
// Javascript implementation of above approach
     
    // Finds reverse of given num x.
    function reverseNum(x)
    {
        let s = x.toString();
        let str="";
        for(let i=s.length-1;i>=0;i--)
        {
               
            str=str+s[i];
        }
           
        let rev=parseInt(str);
        return rev; 
    }
     
    function isMysteryNumber(n)
    {
        for (let i=1; i <= Math.floor(n/2); i++) 
        {
            // if found print the pair, return 
            let j = reverseNum(i);
            if (i + j == n) 
            {
                document.write( i + " " + j+"<br>"); 
                return true;
            }
        }
       
         document.write("Not a Mystery Number<br>");
        return false;
    }
     
    let n = 121;
    isMysteryNumber(n);
     
       
 
 
// This code is contributed by avanitrachhadiya2155
</script>






29 92
 
Mystery Numbers | GeeksforGeeks - YouTubeGeeksforGeeks532K subscribersMystery Numbers | GeeksforGeeksWatch laterShareCopy linkInfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.You're signed outVideos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.CancelConfirmMore videosMore videosSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:000:00 / 3:14•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=JEc8AH_8th8" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>
mohit kumar 29
ihritik
ukasp
avanitrachhadiya2155

number-digits


Paytm


Technical Scripter 2018


Mathematical

Paytm
Mathematical
Writing code in comment? 
                                    Please use ide.geeksforgeeks.org, 
                                    generate link and share the link here.