已知一个奇数M,M=x^2-y^2 , x,y为整数且x>y,求x的最小值。
如:15 = 4^2-1^2 = 8^2-7^2 。x最小值为4
M的值比较大(10位以上),有时x比'根号M'大得多,穷举大于'根号M'的整数太慢,更好的办法吗?说一下思路。
已知一个奇数M,M=x^2-y^2 , x,y为整数且x>y,求x的最小值。
如:15 = 4^2-1^2 = 8^2-7^2 。x最小值为4
M的值比较大(10位以上),有时x比'根号M'大得多,穷举大于'根号M'的整数太慢,更好的办法吗?说一下思路。
首先算出1~根号M的所有数字的平方,如果M是10位数,那么这个完全平方数表一共几万个。
然后将问题转化为完全平方数表上A-B=M,显然A要大于M,B可以由M-A得到,然后查表判断B是否存在,在有序表里查找可以用二分查找法。
所以运算量必然小于 NLogN