天天看點

hdoj ztr loves math 5675 (數學規律)給出一個n問是否有整數解 ztr loves math

ztr loves math

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

Total Submission(s): 766    Accepted Submission(s): 296

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}$
   
   
    
     問題描述
    
           
ztr喜歡研究數學,一天,他在思考直角三角形方程組的Lower版,即n=x^{2}-y^{2}n=x​2​​−y​2​​,他想知道,對于給出的n,是否會有正整數解。      
輸入描述
有T組資料,第一行為一個正整數T(T<=10^{6})T(T<=10​6​​),每一行一個正整數n,n <=10^{18}n<=10​18​​      
輸出描述
如果有正整數解,輸出TrueTrue,否則輸出FalseFalse      
輸入樣例
4
6
25
81
105      
輸出樣例
False
True
True
True      
Hint
對于第四個樣例,有一組解13^{2}-8^{2}=10513​2​​−8​2​​=105      
//首先可以模拟一下前面的幾個數: 前九個數的平方為: 1 4 9 16 25 36 49 64 81 相鄰兩個數的內插補點為: 3 5 7 9 11 13 15 17 由上面的數可以看出如果是相鄰兩個數的話,n的值為奇數,但也可能為偶數(比較特殊),例如: 9-1=8 16-4=12等... 除了這兩種情況沒有其他的情況了,是以根據這兩個發現可以找出規律: if((n&1ll&&n!=1)||(n%4==0&&n!=4)) printf("True\n");
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define INF 0x3f3f3f3f
#define ll long long
using namespace std;
int main()
{
	int t,i,j,k;
	ll n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%lld",&n);
		if((n&1ll&&n!=1)||(n%4==0&&n!=4))
			printf("True\n");
		else
			printf("False\n");
	}
	return 0;
}