hdu 6441 Find Integer(費馬大定理+勾股數)
阿新 • • 發佈:2019-01-11
題目連結: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年被英國數學家安德魯·懷爾斯 徹底證明(一)直角三角形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為偶數列平方整數解的關係是:
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 }