HDU 2018中國大學生程式設計競賽---網路賽
阿新 • • 發佈:2018-12-13
Find Integer----費馬大定理
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 6597 Accepted Submission(s): 1852Special Judge
Problem Description
people in USSS love math very much, and there is a famous math problem . give you two integers n,a,you are required to find 2 integers b
Input
one line contains one integer T;(1≤T≤1000000) next T lines contains two integers n,a;(0≤n≤1000,000,000,3≤a≤40000)
Output
print two integers b,c if b,c exits;(1≤b,c≤1000,000,000); else print two integers -1 -1 instead.
Sample Input
1 2 3
Sample Output
4 5
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; int main(){ ll t,n,a,b,c; scanf("%lld",&t); while(t--){ scanf("%lld%lld",&n,&a); if(n==0||n>2){ printf("-1 -1\n"); }else if(n==1){ b=1; c=a+b; printf("%lld %lld\n",b,c); }else{ if(a%2==0){ a/=2; b=a*a-1; c=a*a+1; }else{ a--; a/=2; b=2*a*a+2*a; c=b+1; } printf("%lld %lld\n",b,c); } } return 0; }