您的位置:首页 > 其它

hdoj 5675 ztr loves math 【数学】

2016-05-01 12:17 302 查看
题目链接:hdoj 5675 ztr loves math

ztr loves math

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 201 Accepted Submission(s): 97

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=132−82

题意:问你n = x^2 - y^2有没有正整数解。

思路:显然就是两个完全平方数之间的距离,临近的距离为3、5、7、9…,可以连续相加,发现只有偶数可以分成两个不同的奇数(大于1)和也是合法的。

AC代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#define CLR(a, b) memset(a, (b), sizeof(a))
using namespace std;
typedef long long LL;
const int MAXN = 5*1e6 +10;
const int INF = 0x3f3f3f3f;
int main()
{
int t; scanf("%d", &t);
while(t--) {
__int64 n; scanf("%I64d", &n);
if(n == 1LL) {
printf("False\n");
}
else if(n & 1LL) {
printf("True\n");
}
else if((n / 2 - 1) & 1 && (n / 2 - 1) >= 3) {
printf("True\n");
}
else {
printf("False\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: