您的位置:首页 > 其它

hdu--5675 ztr loves math

2016-04-30 22:18 281 查看


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?

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

HintFor the fourth case,$105 = 13^{2}-8^{2}$


Source

BestCoder Round #82 (div.2)

分析:可以构造两组等式

(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: