题解 | #质数因子#

质数因子

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

import java.io.*;
public class Main {
    public static void main(String args[]) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        long num=Long.parseLong(br.readLine());//输入流赋值
        long k=(long)Math.sqrt(num);//取平方根减少循环次数
        for(int i=2;i<=k;i++){//套一个循环
            if(num%i==0){//整除
                System.out.print(i+" ");//输出因子
                num=num/i;//新值 
                k=(long)Math.sqrt(num);//新平方根
            i=1;//重新从i=2开始整除
            }
        }
        System.out.println(num==1?"":num+" "); //(三目条件运算符)原数为1则直接输出;原数为2不进入循环直接输出为2;环后若num只有其本身和1两个因子时,不进入循环,直接输出num;若为质数,也在循环若干次后退出循环直接输出自身
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务