ztr loves math
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 41 Accepted Submission(s): 24
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?
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 .
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 TrueHintFor the fourth case,$105 = 13^{2}-8^{2}$
Source
分析:可以构造两组等式
(k + 1)^2−k^2= 2k + 1
(k + 1)^2−(k−1)^2 = 4k 得出结论,当z为奇数或者4的倍数时,方程一定有正整数解
特例:1 和 4 不行。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;
#define inf 0x3f3f3f3f
#define ll long long
int main()
{
#ifdef OFFLINE
freopen("t.txt", "r", stdin);
#endif
ll i, j, k, n, m, t;
scanf("%lld", &t);
while (t--){
scanf("%lld", &n);
if (n == 1 || n == 4)
puts("False");
else if (n % 2 || n % 4 == 0)
puts("True");
else
puts("False");
}
return 0;
}