Fermat’s Last Theorem
Last Updated :
23 Jun, 2022
According to Fermat’s Last Theorem, no three positive integers a, b, c satisfy the equation, for any integer value of n greater than 2. For n = 1 and n = 2, the equation have infinitely many solutions.
Some solutions for n = 1 are,
2 + 3 = 5
7 + 13 = 20
5 + 6 = 11
10 + 9 = 19
Some solutions for n = 2 are,
C++
#include <bits/stdc++.h>
using namespace std;
void testSomeNumbers( int limit, int n)
{
if (n < 3)
return ;
for ( int a=1; a<=limit; a++)
for ( int b=a; b<=limit; b++)
{
int pow_sum = pow (a, n) + pow (b, n);
double c = pow (pow_sum, 1.0/n);
int c_pow = pow (( int )c, n);
if (c_pow == pow_sum)
{
cout << "Count example found" ;
return ;
}
}
cout << "No counter example within given"
" range and data" ;
}
int main()
{
testSomeNumbers(10, 3);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static void testSomeNumbers( int limit, int n)
{
if (n < 3 )
return ;
for ( int a = 1 ; a <= limit; a++)
for ( int b = a; b <= limit; b++)
{
int pow_sum = ( int )(Math.pow(a, n)
+ Math.pow(b, n));
double c = Math.pow(pow_sum, 1.0 / n);
int c_pow = ( int )Math.pow(( int )c, n);
if (c_pow == pow_sum)
{
System.out.println( "Count example found" );
return ;
}
}
System.out.println( "No counter example within given" +
" range and data" );
}
public static void main (String[] args)
{
testSomeNumbers( 12 , 5 );
}
}
|
Python3
def testSomeNumbers(limit, n) :
if (n < 3 ):
return
for a in range ( 1 , limit + 1 ):
for b in range (a, limit + 1 ):
pow_sum = pow (a, n) + pow (b, n)
c = pow (pow_sum, 1.0 / n)
c_pow = pow ( int (c), n)
if (c_pow = = pow_sum):
print ( "Count example found" )
return
print ( "No counter example within given range and data" )
testSomeNumbers( 10 , 3 )
|
C#
using System;
class GFG {
static void testSomeNumbers( int limit, int n)
{
if (n < 3)
return ;
for ( int a = 1; a <= limit; a++)
for ( int b = a; b <= limit; b++)
{
int pow_sum = ( int )(Math.Pow(a, n)
+ Math.Pow(b, n));
double c = Math.Pow(pow_sum, 1.0 / n);
int c_pow = ( int )Math.Pow(( int )c, n);
if (c_pow == pow_sum)
{
Console.WriteLine( "Count example found" );
return ;
}
}
Console.WriteLine( "No counter example within"
+ " given range and data" );
}
public static void Main ()
{
testSomeNumbers(12, 3);
}
}
|
PHP
<?php
function testSomeNumbers( $limit , $n )
{
if ( $n < 3)
for ( $a = 1; $a <= $limit ; $a ++)
for ( $b = $a ; $b <= $limit ; $b ++)
{
$pow_sum = pow( $a , $n ) + pow( $b , $n );
$c = pow( $pow_sum , 1.0 / $n );
$c_pow = pow( $c , $n );
if ( $c_pow != $pow_sum )
{
echo "Count example found" ;
return ;
}
}
echo "No counter example within " .
"given range and data" ;
}
testSomeNumbers(10, 3);
?>
|
Javascript
<script>
function testSomeNumbers(limit, n)
{
if (n < 3)
return ;
for (let a = 1; a <= limit; a++)
for (let b = a; b <= limit; b++)
{
let pow_sum = (Math.pow(a, n)
+ Math.pow(b, n));
let c = Math.pow(pow_sum, 1.0 / n);
let c_pow = Math.pow(Math.round(c), n);
if (c_pow == pow_sum)
{
document.write( "Count example found" );
return ;
}
}
document.write( "No counter example within given" +
" range and data" );
}
testSomeNumbers(12, 5);
</script>
|
Output: No counter example within given range and data
Time Complexity: O(m2logn) , where m is the limit
Auxiliary Space: O(1)
Please suggest if someone has a better solution which is more efficient in terms of space and time.
Share your thoughts in the comments
Please Login to comment...