hdu 5675 ztr loves math(数学技巧)

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
");
15           continue;
16        }
17        if(n%2==1 || n%4==0){
18            printf("True
");
19        }else{
20            printf("False
");
21        }
22     }
23     return 0;
24 }
原文地址:https://www.cnblogs.com/UniqueColor/p/5452773.html