POJ1183 除输入方式外与这道题完全一样

 

题目大意是给定一个a

求最小的满足arctan(1/A)=arctan(1/B)+arctan(1/C) 的B+C的最小值

 

根据上述递推规律,我们只要从2*a开始往前递增寻找找到第一个满足b,c均为正整数的情况就是最小的

#include <cstdio>
#define ll long long
int main()
{
    int T,n;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        int t=2*n;
        while(((ll)t*t+1)%(t-n)) t--;
        printf("%lld\n" ,((ll)t*t+1)/(t-n));
    }
    return 0;
}

 

 posted on 2015-02-02 10:18  Love风吟  阅读(223)  评论(1编辑  收藏  举报