了解用于查找数字x和y(小于n)的置换的代码,以使x * y是一个完美的平方,而y -x是最大(x <y)

Always_Beginner

我在编程博客中阅读了此功能以完成上述任务,但我无法理解。(另外x * y应该是最大的),最大化x * y的优先级还大于yx。

       long long ans = 0;
        int X,Y;

    for( i = 2;i <= n / i;++i){
        int k = n / (i * i);
        int y = k *i*i;
        int x = k * (i - 1) * (i - 1);

        if((long long)x * y > ans){
            ans = (long long)x * y;
            X = x;
            Y = y;
        }
    }
加内什·贾达夫(Ganesh Jadhav)
  1. i <= n / i确保值xy小于n,因为它们是从i循环内的平方求出的。
    k衍生自ni,而且xy被依次从衍生ki)。
  2. int k = n / (i * i);int y = k * i * i;int x = k * (i - 1) * (i - 1);确保值x * y是一个完美的正方形。
    (因为x * y= k * k * i * i * (i - 1) * (i - 1),即x * y是的完美平方k * i * (i - 1))。
    此外,x小于y因为x派生自(i - 1)yi
  3. 最后的if循环中的三个语句仅跟踪具有最大对的那对x * y

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档