题解 | 质数因子

质数因子

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.print(find(n));
        ;

    }


    public static StringBuilder find(int n) {
            int x = n;//记录变量初始值
        StringBuilder sb = new StringBuilder();

        for (int i = 2; i <= Math.ceil(Math.sqrt(n)); i++) {
            if (n % i == 0) {    //此时i为因子
                sb.append(i).append(" ");
                n = n / i;
                i = i - 1;//将被除数重新开始循环
            }
        }
        //如果最后小于初始值,则n为最后因子,将其加入sb中
        if (n < x && n!=1){
            sb.append(n);
        } else if(n==1){

        }//n为1时不动作
        
        else {
            sb.append(x);//如果最后循环结束n不变,证明n无因子
        }
        return sb;
    }
    }

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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