Fermat's Last Theorem (original) (raw)
Last Updated : 23 Jun, 2022
According to Fermat's Last Theorem, no three positive integers a, b, c satisfy the equation, a^n + b^n = c^n 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, 5^2 + 12^2 = 13^2
3^2 + 4^2 = 5^2
8^2 + 15^2 = 17^2
9^2 + 40^2 = 41^2
C++ `
// C++ program to verify fermat's last theorem // for a given range and n. #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++) { // Check if there exists a triplet // such that a^n + b^n = c^n 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";}
// driver code int main() { testSomeNumbers(10, 3); return 0; }
Java
// Java program to verify fermat's last theorem // for a given range and n. 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++)
{
// Check if there exists a triplet
// such that a^n + b^n = c^n
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");
}
// Driver code
public static void main (String[] args)
{
testSomeNumbers(12, 5);
}}
// This code is contributed by vt_m.
Python3
Python3 program to verify fermat's last
theorem for a given range and n.
def testSomeNumbers(limit, n) :
if (n < 3):
return
for a in range(1, limit + 1):
for b in range(a, limit + 1):
# Check if there exists a triplet
# such that a^n + b^n = c^n
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")Driver code
testSomeNumbers(10, 3)
This code is contributed by Smitha Dinesh Semwal.
C#
// C# program to verify fermat's last theorem // for a given range and n. 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++)
{
// Check if there exists a triplet
// such that a^n + b^n = c^n
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");
}
// Driver code
public static void Main ()
{
testSomeNumbers(12, 3);
}}
// This code is contributed by vt_m.
PHP
JavaScript
`
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.