题意:给定一个正整数n,是否存在n=x^2-y^2(n<=10^18)。
分析:
原式可写成:n=(k+x)^2-k^2(x,k均为正整数)。
展开得n=2*x*k+k^2。
由此可知要使上式成立存在两种情况(因为2*x*k必为偶数,而k^2可为奇偶):
1、当k^2为奇数时,n为奇数,所以当n为奇数时,存在题目所给式子(1除外,因为当x,k均取1时最小,n为3,。。。。。。)。
2、当k^2为偶数时,n为偶数,令k=2g;则有n=2*x*(2g)+(2g)^2=4(xg+g^2);此时只要n为4的倍数,存在题目所给式子,最小为8(因为当x,g均为1时,n为8)
总结:所以当n为奇数并且不等于1时,以及当n为4的倍数且不为4时,存在题目的式子。