C++ 中的費馬大定理


數論中的費馬大定理又稱費馬猜想 ,是一個定理,內容為對於大於 2 的 n 次冪。不存在三個值 a、b、c 滿足 −

          a+ b= cn

     如果 n <= 2,              an + b= cn 

          否則,  an + b!= cn

n = 2 的值示例, 

3、4、5 => 32 + 42 = 9 + 16 = 25 = 52。 

5, 12, 13 => 25 + 49 = 169 = 132.

在這個問題中,我們給定三個值,L、R、pow,表示範圍 [L, R] 和冪。我們的任務是驗證給定範圍和冪的費馬大定理。

我們舉個例子來理解這個問題,

示例 1: 

輸入: L = 4,R = 12,冪 = 2

輸出: 5, 12, 13

示例 2: 

輸入: L = 4,R = 12,冪 = 4

輸出: 未找到此類值

解決方案方法: 

在此,我們將檢查冪是否大於 2。如果大於,則列印未找到此類值。  

否則,在限制條件內檢查是否有值滿足條件 an + bn = cn

說明我們解決方案工作原理的程式,

示例

現場演示

#include <iostream>
#include <math.h>
using namespace std;

void checkFermatsLastTh(int L, int R, int n) {

   if (n >= 3)
   cout<<"No example found!";
   else {
      for (int a = L; a <= R; a++)
      for (int b=a; b<=R; b++)
      {
         int sum = pow(a, n) + pow(b, n);
         double c = pow(sum, 1.0/n);
         int cpowN = pow((int)c, n);
         if (cpowN == sum)
      {
         cout<<"Example found with value : "<<a<<", "<<b<<", "<<c;
         return;
      }
   }
   
   cout << "No example found!";
   }
}

int main() {
   
   int L = 3, R = 15, power = 2;
   cout<<"Run 1 \n";
   checkFermatsLastTh(L, R, power);
   
   L = 5, R = 42; power = 5;
   cout<<"\n\nRun 2\n";
   checkFermatsLastTh(L, R, power);

   return 0;
}

輸出 −

Run 1
Example found with value : 3, 4, 5
Run 2
No example found!

更新於: 2021 年 1 月 22 日

170 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.