求解方程.计数(x,y)

Dmi*_*tri 3 c c++ math equation-solving

我的数学有问题:

假设我们有一个函数:F(x,y)= P; 我的问题是:为这个函数计算合适的(x,y)图的最有效方法是什么?这意味着我不需要坐标自理,但我需要一个人.P在以下范围内:[0; 10 ^ 14]."x"和"y"是整数.它是使用强力解决还是有一些高级技巧(数学/编程语言(C,C++))来解决这个问题的速度足够快?

更具体地说,函数是:x*y - ((x + y)/ 2)+ 1.

Ste*_*sop 10

x*y - ((x+y)/2) + 1 == P相当于(2x-1)(2y-1) == (4P-3).

所以,你基本上是在寻找分解的数量4P-3.如何用C或C++计算数字可能是一个不同的问题,但每个因子分解产生原始方程的解.[编辑:实际上是两种解决方案,因为A*B == C当然(-A)*(-B) == C也是如此].

就编程语言C和C++而言,只需确保使用足够大的类型即可4 * 10^14.int不会这样做,所以试试吧long long.