題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=6441(本題來源於2018年中國大學生程式設計競賽網路選拔賽) 題意:輸入n和a,求滿足等式a^n+b^n=c^n的b,c的值 思路: 首先我們要知道什麼是費馬大定理 百度詞條 費馬大定理,又被稱為“費馬 ...
題目鏈接: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+2 b=n^2+2n c=n^2+2n+2 標準程式:
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 }