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
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++
#include <iostream>
using namespace std;
bool isTrimorphic( int N)
{
int cube = N * N * N;
while (N > 0)
{
if (N % 10 != cube % 10)
return false ;
N /= 10;
cube /= 10;
}
return true ;
}
int main()
{
int N = 24;
isTrimorphic(N) ? cout << "trimorphic" :
cout << "not trimorphic" ;
return 0;
}
|
Java
class GFG {
static boolean isTrimorphic( int N)
{
int cube = N * N * N;
while (N > 0 ) {
if (N % 10 != cube % 10 )
return false ;
N /= 10 ;
cube /= 10 ;
}
return true ;
}
public static void main(String[] args)
{
int N = 24 ;
if (isTrimorphic(N) == true )
System.out.println( "trimorphic" );
else
System.out.println( "not trimorphic" );
}
}
|
Python3
def isTrimorphic(N) :
cube = N * N * N
while (N > 0 ) :
if (N % 10 ! = cube % 10 ) :
return False
N = N / / 10
cube = cube / / 10
return True
N = 24
if (isTrimorphic(N)) :
print ( "trimorphic" )
else :
print ( "not trimorphic" )
|
C#
using System;
class GFG {
static bool isTrimorphic( int N)
{
int cube = N * N * N;
while (N > 0) {
if (N % 10 != cube % 10)
return false ;
N /= 10;
cube /= 10;
}
return true ;
}
public static void Main()
{
int N = 24;
if (isTrimorphic(N) == true )
Console.Write( "trimorphic" );
else
Console.Write( "not trimorphic" );
}
}
|
PHP
<?php
function isTrimorphic( $N )
{
$cube = $N * $N * $N ;
while ( $N > 0)
{
if ( $N % 10 != $cube % 10)
return -1;
$N /= 10;
$cube /= 10;
}
return 1;
}
$N = 24;
$r = isTrimorphic( $N ) ? "trimorphic" :
"not trimorphic" ;
echo $r ;
?>
|
Javascript
<script>
function isTrimorphic(N)
{
let cube = N * N * N;
while (N > 0)
{
if (N % 10 != cube % 10)
return false ;
N = parseInt(N / 10, 10);
cube = parseInt(cube / 10, 10);
}
return true ;
}
let N = 24;
if (isTrimorphic(N) == true )
document.write( "trimorphic" );
else
document.write( "not trimorphic" );
</script>
|
Output:
trimorphic
Find nth Trimorphic Number
Examples:
Input : 10
Output : 51
Input : 11
Output : 75
C++
#include <iostream>
using namespace std;
# define INT_MAX 2147483647
bool checkTrimorphic( int num)
{
int cube = num * num * num;
while (num > 0)
{
if (num % 10 != cube % 10)
return false ;
num /= 10;
cube /= 10;
}
return true ;
}
int nthTrimorphic( int n)
{
int count = 0;
for ( int i = 0; i < INT_MAX; i++)
{
if (checkTrimorphic(i))
count++;
if (count == n)
return i;
}
}
int main()
{
int n = 9;
cout<< nthTrimorphic(n);
return 0;
}
|
Java
class GFG
{
static int INT_MAX = 2147483647 ;
static boolean checkTrimorphic( int num)
{
int cube = num * num * num;
while (num > 0 )
{
if (num % 10 != cube % 10 )
return false ;
num /= 10 ;
cube /= 10 ;
}
return true ;
}
static int nthTrimorphic( int n)
{
int count = 0 ;
for ( int i = 0 ; i < INT_MAX; i++)
{
if (checkTrimorphic(i))
count++;
if (count == n)
return i;
}
return - 1 ;
}
public static void main(String[] args)
{
int n = 9 ;
System.out.println(nthTrimorphic(n));
}
}
|
Python3
import sys
def checkTrimorphic(num):
cube = num * num * num
while (num > 0 ):
if (num % 10 ! = cube % 10 ):
return False
num = int (num / 10 )
cube = int (cube / 10 )
return True
def nthTrimorphic(n):
count = 0
for i in range (sys.maxsize):
if (checkTrimorphic(i)):
count + = 1
if (count = = n):
return i
if __name__ = = '__main__' :
n = 9
print (nthTrimorphic(n))
|
C#
using System;
class GFG
{
static int INT_MAX = 2147483647;
static bool checkTrimorphic( int num)
{
int cube = num * num * num;
while (num > 0)
{
if (num % 10 != cube % 10)
return false ;
num /= 10;
cube /= 10;
}
return true ;
}
static int nthTrimorphic( int n)
{
int count = 0;
for ( int i = 0; i < INT_MAX; i++)
{
if (checkTrimorphic(i))
count++;
if (count == n)
return i;
}
return -1;
}
static int Main()
{
int n = 9;
Console.Write(nthTrimorphic(n));
return 0;
}
}
|
PHP
<?php
function checkTrimorphic( $num )
{
$cube = $num * $num * $num ;
while ( $num > 0)
{
if ( $num % 10 != $cube % 10)
return false;
$num = (int)( $num / 10);
$cube = (int)( $cube / 10);
}
return true;
}
function nthTrimorphic( $n )
{
$count = 0;
for ( $i = 0;
$i < PHP_INT_MAX; $i ++)
{
if (checkTrimorphic( $i ))
$count ++;
if ( $count == $n )
return $i ;
}
}
$n = 9;
echo nthTrimorphic( $n );
?>
|
Javascript
<script>
let LET_MAX = 2147483647;
function checkTrimorphic(num)
{
let cube = num * num * num;
while (num > 0)
{
if (num % 10 != cube % 10)
return false ;
num = Math.floor(num / 10);
cube = Math.floor(cube / 10);
}
return true ;
}
function nthTrimorphic(n)
{
let count = 0;
for (let i = 0; i < LET_MAX; i++)
{
if (checkTrimorphic(i))
count++;
if (count == n)
return i;
}
return -1;
}
let n = 9;
document.write(nthTrimorphic(n));
</script>
|
Output:
49
Time complexity: O(INT_MAX*logN)
space complexity: O(1)
Last Updated :
09 Aug, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...