pku1183[转自GSY师姐的一篇贴子]

题目连接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1183

已知 a*(b+c)=bc-1; 给一个1=<a<=6000,求这个方程b,c正整解使b+c最小,
        可以设t=b+c;则b+c=t;b*c=a*t+1;b,c为x^2-t*x+a*t+1=0的根。
        1.问题转化为x^2-t*x+a*t+1=0,求最小的t使该方程解都为正整数。
          考察判别式det=t^2-4*a*t-4;判别式需为完全平方数。
          于是设t^2-4*a*t-4=k^2;
          变形一下得(t-2*a-k)*(t-2*a+k)=4*(a^2+1);
          t-2*a-k与(t-2*a+k)同奇偶,由等号右边为偶,设
       2.t-2*a-k=2*i,t-2*a+k=2*j(i*j=a^2+1);
          上两式相加于是t可表示为t=2*a+i+j;
           现在就是求i+j的最小值了,积一定,i与j相差越小i+j越小
           i=a 往小的开始枚举,一旦(a^2+1)%i==0跳出
        3.输出t=2*a+i+j;

注:结果会很大,注意使用long long

rookie的代码:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值