反正切函数的应用
Time Limit: 1000MS
Memory Limit: 10000K
由题意得等式
(c-a)(b-a)=a2+1
(注意xy+Dx+Ey+F=0的等式都可以化为(x+E)(y+D)=DE-F的形式)
然后令m=c-a,求出当m|(a2+1)时的b-a=(a2+1)/m,所以c+b = m+a+(a2+1)/m+a = ((a+m)2+1)/m
(话说能否有比O(a)更快的算法?)
完整代码:
/*0ms,132KB*/
#include<cstdio>
#include<cmath>
int main()
{
__int64 a, m;
scanf("%I64d", &a);
for (m = a; (a * a + 1) % m; --m)
;
printf("%I64d\n", ((a + m) * (a + m) + 1) / m);
return 0;
}