题解 | #质数因子#

质数因子

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import static java.lang.Math.sqrt;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int num=Integer.parseInt(s);
        StringBuilder sb = new StringBuilder();
        for(int i=2;i<=sqrt(num);i++){
            if(num%i==0){
                sb.append(i).append(" ");
                num/=i;
                i--;
            }
        }
        sb.append(num).append(" ");
        System.out.println(sb.toString());

    }
}
/**
1、任何一个合数都是一系列质数的乘积
2、这里求的就是这一系列质数
3、正整数可以分为合数以及1和质数
4、当为合数时,循环中能被整除的i就是质因子.num不断变小,直到最后为一个质因子
   当得到一个因子后,i不变;当i不为因子时i++;
   合数的因子一定能拆为一系列质数
5、当为1或者质数是直接输出其自身,合数的最后一个因子也是质数故也要输出
6、这里i小于等于sqrt(num),质因子小等于num的开方。






    

 */

全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
挥毫自在:想白嫖你呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务