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

a<=a <= a<=limit; $a++) for($b = a;a; a;b <= limit;limit; limit;b++) { // Check if there exists a triplet // such that a^n + b^n = c^n powsum=pow(pow_sum = pow(powsum=pow(a, n)+pow(n) + pow(n)+pow(b, $n); c=pow(c = pow(c=pow(pow_sum, 1.0 / $n); cpow=pow(c_pow = pow(cpow=pow(c, $n); if ($c_pow != $pow_sum) { echo "Count example found"; return; } } echo "No counter example within ". "given range and data"; } // Driver Code testSomeNumbers(10, 3); // This code is contributed by m_kit ?>

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.