当前位置:  开发笔记 > 编程语言 > 正文

N的最大除数(自身除外)

如何解决《N的最大除数(自身除外)》经验,为你挑选了1个好方法。



1> Elliott Fris..:

反向迭代这些值。只需返回找到的第一个(最大)即可。就像是,

public static int largestDivisor(int n) {
    for (int i = n / 2; i >= 2; i--) {
        if (n % i == 0) {
            return i;
        }
    }
    return 1;
}

或者,您可以对@WillemVanOnsem的答案进行一些改进,并以奇数开头,例如;

public static int largestDivisor(int n) {
    if (n % 2 == 0) {
        return n / 2;
    }
    final int sqrtn = (int) Math.sqrt(n);
    for (int i = 3; i <= sqrtn; i += 2) {
        if (n % i == 0) {
            return n / i;
        }
    }
    return 1;
}

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有