题解 | #质数因子#java语言,用例全部通过

质数因子

http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    while (scanner.hasNext()){
       long num = scanner.nextLong();
       long k = (long) Math.sqrt(num);
       while(num%2==0){
           System.out.print("2 ");
           num=num/2;
       }
       for(int i=3;i<=k;i+=2){
           while(num%i==0){
               System.out.print(i+" ");
               num=num/i;
           }
        }
        System.out.print(num==1?"":num+" ");
    }
}

思路:
1.先算平方根,因为质因子不可能大于平方根。
2.循环除以2,先把2都输出了。
3.从3开始尝试除以所有奇数。
这么操作的原因是,除了2之外,偶数不可能是质数。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务