# Trimorphic Number

Given a number N, the task is to check whether the number is Trimorphic number or not. A number is called Trimorphic number if and only if its cube ends in the same digits as the number itself. In other words, number appears at the end of its cube.

Examples:

```Input : 5
Output : trimorphic
Explanation: 5*5*5=125

Input : 24
Output : trimorphic
Explanation: 24*24*24=13824

Input:10
Output: not trimorphic
Explanation: 10*10*10=1000
```

## Recommended: Please solve it on PRACTICE first, before moving on to the solution.

Approach:

```1. Store the cube of given number.
2. Loop until N becomes 0 as we have to match
all digits with its cube.
i) Check if (n%10 == cube%10) i.e. last digit
of number = last digit of cube or not
a) if not equal, return false.
ii) Otherwise continue i.e. reduce number and
cube i.e. n = n/10 and cube = cube/10;
3- Return true if all digits matched.
```

Below is the implementation of the approach.

## C++

 `// C++ program to check if a ` `// number is Trimorphic ` `#include ` `using` `namespace` `std; ` ` `  `// Function to check Trimorphic number ` `bool` `isTrimorphic(``int` `N) ` `{ ` `    ``// Store the cube ` `    ``int` `cube = N * N * N; ` ` `  `    ``// Start Comparing digits ` `    ``while` `(N > 0)  ` `    ``{ ` `        ``// Return false, if any digit ` `        ``// of N doesn't match with ` `        ``// its cube's digits from last ` `        ``if` `(N % 10 != cube % 10) ` `            ``return` `false``; ` ` `  `        ``// Reduce N and cube ` `        ``N /= 10; ` `        ``cube /= 10; ` `    ``} ` ` `  `    ``return` `true``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `N = 24; ` ` `  `    ``isTrimorphic(N) ? cout << ``"trimorphic"` `: ` `                      ``cout << ``"not trimporphic"``; ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to check if a ` `// number is Trimorphic ` `  `  `class` `GFG { ` `  `  `  ``// Function to check Trimorphic number ` `    ``static` `boolean` `isTrimorphic(``int` `N) ` `    ``{ ` `        ``// Store the cube ` `        ``int` `cube = N * N * N; ` `  `  `        ``// Start Comparing digits ` `        ``while` `(N > ``0``) { ` `  `  `         ``// Return false, if any digit ` `         ``// of N doesn't match with ` `         ``// its cube's digits from last ` `         ``if` `(N % ``10` `!= cube % ``10``) ` `            ``return` `false``; ` `  `  `            ``// Reduce N and cube ` `            ``N /= ``10``; ` `            ``cube /= ``10``; ` `        ``} ` `  `  `        ``return` `true``; ` `    ``} ` `  `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `N = ``24``; ` `  `  `        ``if` `(isTrimorphic(N) == ``true``) ` `        ``System.out.println(``"trimorphic"``); ` `        ``else` `        ``System.out.println(``"not trimorphic"``); ` `    ``} ` `} ` `  `  `//This article is contributed by prerna saini. `

## Python3

 `# Python 3 program to check ` `# if a number is Trimorphic ` ` `  `  `  `# Function to check  ` `# Trimorphic number ` `def` `isTrimorphic(N) : ` `     `  `    ``# Store the cube ` `    ``cube ``=` `N ``*` `N ``*` `N ` `  `  `    ``# Start Comparing digits ` `    ``while` `(N > ``0``) : ` `        `  `        ``# Return false, if any digit ` `        ``# of N doesn't match with ` `        ``# its cube's digits from last ` `        ``if` `(N ``%` `10` `!``=` `cube ``%` `10``) : ` `            ``return` `False` `  `  `        ``# Reduce N and cube ` `        ``N ``=` `N ``/``/` `10` `        ``cube ``=` `cube ``/``/` `10` `     `  `    ``return` `True` ` `  ` `  `# Driver code ` `N ``=` `24` `if``(isTrimorphic(N)) : ` `    ``print``(``"trimorphic"``) ` `else` `: ` `    ``print``(``"not trimporphic"``) ` `     `  `     `  `# This code is contributed by Nikita tiwari. `

## C#

 `// C# program to check if  ` `// a number is Trimorphic ` `using` `System; ` ` `  `class` `GFG { ` ` `  `// Function to check Trimorphic number ` `    ``static` `bool` `isTrimorphic(``int` `N) ` `    ``{ ` `        ``// Store the cube ` `        ``int` `cube = N * N * N; ` ` `  `        ``// Start Comparing digits ` `        ``while` `(N > 0) { ` ` `  `        ``// Return false, if any digit ` `        ``// of N doesn't match with ` `        ``// its cube's digits from last ` `        ``if` `(N % 10 != cube % 10) ` `            ``return` `false``; ` ` `  `            ``// Reduce N and cube ` `            ``N /= 10; ` `            ``cube /= 10; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` ` `  `// Driver code ` `public` `static` `void` `Main() ` `    ``{ ` `        ``int` `N = 24; ` ` `  `        ``if` `(isTrimorphic(N) == ``true``) ` `        ``Console.Write(``"trimorphic"``); ` `        ``else` `        ``Console.Write(``"not trimorphic"``); ` `    ``} ` `} ` ` `  `// This article is contributed  ` `// by Smitha Dinesh Semwal. `

## PHP

 ` 0)  ` `    ``{ ` `         `  `        ``// Return false, if any digit ` `        ``// of N doesn't match with ` `        ``// its cube's digits from last ` `        ``if` `(``\$N` `% 10 != ``\$cube` `% 10) ` `            ``return` `-1; ` ` `  `        ``// Reduce N and cube ` `        ``\$N` `/= 10; ` `        ``\$cube` `/= 10; ` `    ``} ` ` `  `    ``return` `1; ` `} ` ` `  `// Driver code ` `    ``\$N` `= 24; ` ` `  `    ``\$r` `= isTrimorphic(``\$N``) ? ``"trimorphic"` `: ` `                      ``"not trimporphic"``; ` `    ``echo` `\$r``; ` ` `  `// This code is contributed by aj_36 ` `?> `

Output:

```trimorphic
```

Find nth Trimorphic Number

Examples:

```Input  : 10
Output : 51

Input  : 11
Output : 75
```

## C++

 `// CPP program to find nth  ` `// Trimorphic number  ` `#include ` `using` `namespace` `std; ` ` `  `# define INT_MAX 2147483647 ` `// Functions to find nth ` `// Trimorphic number ` `bool` `checkTrimorphic(``int` `num) ` `{ ` `    ``int` `cube = num * num * num; ` `    ``// Comparing the digits ` `    ``while``(num > 0)  ` `    ``{ ` `        ``// Return false, if any digit  ` `        ``// of num doesn't match with ` `        ``// its cube's digits from last ` `        ``if` `(num % 10 != cube % 10) ` `            ``return` `false``; ` ` `  `        ``// Reduce num and cube ` `        ``num /= 10; ` `        ``cube /= 10; ` `    ``} ` `    ``return` `true``; ` `} ` `int` `nthTrimorphic(``int` `n) ` `{ ` `     `  `    ``int` `count = 0; ` `    ``// Check in max int size ` `    ``for``(``int` `i = 0; i < INT_MAX; i++) ` `    ``{ ` `        ``//check number is Trimorphic or not ` `        ``if``(checkTrimorphic(i)) ` `            ``count++; ` `             `  `        ``// if counter is equal to the ` `        ``// n then return nth number ` `        ``if``(count == n) ` `            ``return` `i; ` `    ``} ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 9; ` `    ``cout<< nthTrimorphic(n); ` `    ``return` `0; ` `} ` ` `  `// This code is contributed by jaingyayak. `

## Java

 `// Java program to find nth  ` `// Trimorphic number  ` ` `  ` `  `class` `GFG ` `{ ` `static` `int` `INT_MAX = ``2147483647``; ` ` `  `// Functions to find nth ` `// Trimorphic number ` `static` `boolean` `checkTrimorphic(``int` `num) ` `{ ` `    ``int` `cube = num * num * num; ` `     `  `    ``// Comparing the digits ` `    ``while``(num > ``0``)  ` `    ``{ ` `        ``// Return false, if any  ` `        ``// digit of num doesn't  ` `        ``// match with its cube's  ` `        ``// digits from last ` `        ``if` `(num % ``10` `!= cube % ``10``) ` `            ``return` `false``; ` ` `  `        ``// Reduce num and cube ` `        ``num /= ``10``; ` `        ``cube /= ``10``; ` `    ``} ` `    ``return` `true``; ` `} ` ` `  `static` `int` `nthTrimorphic(``int` `n) ` `{ ` `     `  `    ``int` `count = ``0``; ` `     `  `    ``// Check in max int size ` `    ``for``(``int` `i = ``0``; i < INT_MAX; i++) ` `    ``{ ` `        ``// check number is ` `        ``// Trimorphic or not ` `        ``if``(checkTrimorphic(i)) ` `            ``count++; ` `             `  `        ``// if counter is equal to  ` `        ``// the n then return nth number ` `        ``if``(count == n) ` `            ``return` `i; ` `    ``} ` `    ``return` `-``1``; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `n = ``9``; ` `    ``System.out.println(nthTrimorphic(n)); ` `} ` `} ` ` `  `// This code is contributed by mits. `

## Python3

 `# Python3 program to find  ` `# nth Trimorphic number  ` `import` `sys ` `# Functions to find nth ` `# Trimorphic number ` `def` `checkTrimorphic(num): ` ` `  `    ``cube ``=` `num ``*` `num ``*` `num ` `     `  `    ``# Comparing the digits ` `    ``while``(num > ``0``): ` `        ``# Return false, if any digit  ` `        ``# of num doesn't match with ` `        ``# its cube's digits from last ` `        ``if` `(num ``%` `10` `!``=` `cube ``%` `10``): ` `            ``return` `False` ` `  `        ``# Reduce num and cube ` `        ``num ``=` `int``(num ``/` `10``) ` `        ``cube ``=` `int``(cube ``/` `10``) ` `    ``return` `True` ` `  ` `  `def` `nthTrimorphic(n): ` `    ``count ``=` `0` `     `  `    ``# Check in max int size ` `    ``for` `i ``in` `range``(sys.maxsize): ` `        ``# check number is ` `        ``# Trimorphic or not ` `        ``if``(checkTrimorphic(i)): ` `            ``count``+``=``1` `             `  `        ``# if counter is equal to  ` `        ``# the n then return nth  ` `        ``# number ` `        ``if``(count ``=``=` `n): ` `            ``return` `i ` ` `  ` `  ` `  `# Driver code ` `if` `__name__``=``=``'__main__'``: ` `    ``n ``=` `9` `    ``print``(nthTrimorphic(n)) ` ` `  `# This code is contributed  ` `# by mits. `

## C#

 `// C# program to find nth  ` `// Trimorphic number  ` `using` `System; ` ` `  `class` `GFG ` `{ ` `static` `int` `INT_MAX = 2147483647; ` ` `  `// Functions to find nth ` `// Trimorphic number ` `static` `bool` `checkTrimorphic(``int` `num) ` `{ ` `    ``int` `cube = num * num * num; ` `     `  `    ``// Comparing the digits ` `    ``while``(num > 0)  ` `    ``{ ` `        ``// Return false, if any  ` `        ``// digit of num doesn't  ` `        ``// match with its cube's  ` `        ``// digits from last ` `        ``if` `(num % 10 != cube % 10) ` `            ``return` `false``; ` ` `  `        ``// Reduce num and cube ` `        ``num /= 10; ` `        ``cube /= 10; ` `    ``} ` `    ``return` `true``; ` `} ` ` `  `static` `int` `nthTrimorphic(``int` `n) ` `{ ` `     `  `    ``int` `count = 0; ` `     `  `    ``// Check in max int size ` `    ``for``(``int` `i = 0; i < INT_MAX; i++) ` `    ``{ ` `        ``// check number is ` `        ``// Trimorphic or not ` `        ``if``(checkTrimorphic(i)) ` `            ``count++; ` `             `  `        ``// if counter is equal to  ` `        ``// the n then return nth number ` `        ``if``(count == n) ` `            ``return` `i; ` `    ``} ` `    ``return` `-1; ` `} ` ` `  `// Driver code ` `static` `int` `Main() ` `{ ` `    ``int` `n = 9; ` `    ``Console.Write(nthTrimorphic(n)); ` `    ``return` `0; ` `} ` `} ` ` `  `// This code is contributed by mits. `

## PHP

 ` 0)  ` `    ``{ ` `        ``// Return false, if any digit  ` `        ``// of num doesn't match with ` `        ``// its cube's digits from last ` `        ``if` `(``\$num` `% 10 != ``\$cube` `% 10) ` `            ``return` `false; ` ` `  `        ``// Reduce num and cube ` `        ``\$num` `= (int)(``\$num` `/ 10); ` `        ``\$cube` `= (int)(``\$cube` `/ 10); ` `    ``} ` `    ``return` `true; ` `} ` ` `  `function` `nthTrimorphic(``\$n``) ` `{ ` `    ``\$count` `= 0; ` `     `  `    ``// Check in max int size ` `    ``for``(``\$i` `= 0;  ` `        ``\$i` `< PHP_INT_MAX; ``\$i``++) ` `    ``{ ` `        ``// check number is ` `        ``// Trimorphic or not ` `        ``if``(checkTrimorphic(``\$i``)) ` `            ``\$count``++; ` `             `  `        ``// if counter is equal to  ` `        ``// the n then return nth  ` `        ``// number ` `        ``if``(``\$count` `== ``\$n``) ` `            ``return` `\$i``; ` `    ``} ` `} ` ` `  `// Driver code ` `\$n` `= 9; ` `echo` `nthTrimorphic(``\$n``); ` ` `  `// This code is contributed  ` `// by mits. ` `?> `

Output:

`49`

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.