1. 程式人生 > >hdu 6441 Find Integer(費馬大定理+勾股數)

hdu 6441 Find Integer(費馬大定理+勾股數)

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=6441(本題來源於2018年中國大學生程式設計競賽網路選拔賽)

題意:輸入n和a,求滿足等式a^n+b^n=c^n的b,c的值

思路:

首先我們要知道什麼是費馬大定理

百度詞條

費馬大定理,又被稱為“費馬最後的定理”,由17世紀法國數學家皮耶·德·費馬提出。 他斷言 當整數n >2時,關於x, y, z的方程 x^n + y^n = z^n 沒有正整數解。 德國佛爾夫斯克曾宣佈以10萬馬克作為獎金獎給在他逝世後一百年內,第一個證明該定理的人,吸引了不少人嘗試並遞交他們的“證明”。 被提出後,經歷多人猜想辯證,歷經三百多年的歷史,最終在1995年被英國數學家安德魯·懷爾斯 徹底證明
。   因此,只需討論n=1,n=2兩種情況,其餘的n值直接輸出"-1 -1" ①n=1 等式相當於a+b=c,直接輸出"1 a+1" ②n=2 等式相當於a^2+b^2=c^2,此時需要探索勾股數奇偶性的規律(原文連結: https://wenku.baidu.com/view/8282f1b669eae009591bec85.html)     A.當勾(a)為奇數時 a.列表 b.歸納規律 (1)每組中a都是奇數 c.證明   B.當a(勾)為偶數時
a.列表 b.歸納規律 (1)每組中a(勾)是偶數,(第一組較特殊,勾比股大) c.證明 由上可以總結出 奇偶數列法則 定理:如a^2+b^2=c^2是直角三角形的三個整數邊長,則必有如下a值的奇數列、偶數列關係成立;
(一)直角三角形a^2+b^2=c^2的奇數列a法則 

若a為2n+1型奇數,則a為奇數列平方整數解的關係是: a=2n+1  b=n^2+(n+1)^2-1  c=n^2+(n+1)^2 (二)直角三角形a^2+b^2=c^2的偶數列a法則: 若a為2n型偶數,則a為偶數列平方整數解的關係是:
a= 2n  b=n^2-1  c=n^2+1    標準程式:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     long long n,a,z,i;
 6     scanf("%lld",&i);    
 7     while(i--)
 8     {
 9         scanf("%lld%lld",&n,&a);
10         if(n==1)    
11             printf("1 %lld\n",a+1); 
12         else if(n==2)
13         {
14             z=a*a;
15             if(a%2==1)
16             {
17                 z=z/2;
18                 printf("%lld %lld",z,z+1);
19             }
20             else if(a%2==0)
21             {
22                 z=z/4;
23                 printf("%lld %lld\n",z-1,z+1);
24             }
25         }
26         else printf("-1 -1\n");
27     }
28     return 0;
29 }