Problem Description
ztr loves research Math.One day,He thought about the "Lower Edition" of triangle equation set.Such as n=x2−y2. He wanted to know that ,for a given number n,is there a positive integer solutions?
Input
There are T test cases. The first line of input contains an positive integer T(T<=106) indicating the number of test cases. For each test case:each line contains a positive integer ,n<=1018.
Output
If there be a positive integer solutions,print True,else print False
Sample Input
4 6 25 81 105
Sample Output
False True True True
Hint
For the fourth case,$105 = 13^{2}-8^{2}$
给定nz,寻找是否存在一组(x,y),满足x^2-y^2=n,那么我们可以构造两个方程 即(k+1)^2-k^2=n和(k+1)^2-(k-1)^2=n,得出结论,当n为奇数或者4的倍数时,方程一定有正整数解,但要记得特判1和4
AC代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 #define ll long long 6 ll n; 7 int main() 8 { 9 int t; 10 scanf("%d",&t); 11 while(t--){ 12 scanf("%I64d",&n); 13 if(n==1 || n==4){ 14 printf("False\n"); 15 continue; 16 } 17 if(n%2==1 || n%4==0){ 18 printf("True\n"); 19 }else{ 20 printf("False\n"); 21 } 22 } 23 return 0; 24 }
时间: 2024-11-05 19:28:48