题解 | #质数因子#

质数因子

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

思路直接,理解上比较简单,效率上相对差一些。

import java.util.*;

public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        StringBuilder sb = new StringBuilder();
        // 遍历所有的因子,取值到平方根即可
        for (int i = 2; i * i <= num; i++) {
            while (num % i == 0) {
            	// 对于2,3连续且已知的因子直接添加
                if (i <= 3) {
                    sb.append(i).append(" ");
                    // 对num去除当前因子重新赋值
                    num /= i;
                    continue;
                }
				
                // 用于判断是否是质数
                boolean isAdd = true;
                // 遍历所有的因子,取值到平方根即可
                for (int j = 2; j * j <= i; j++) {
                    if (i % j == 0) {
                    	// 如果存在除了1和自身之外的因子就不是质数
                        isAdd = false;
                        break;
                    }
                }
                
                // 是质数,就添加
                if (isAdd) {
                    sb.append(i).append(" ");
                }
                
                // 对num去除当前因子重新赋值
                num /= i;
            }
        }
		
        // 循环结束最后不是1的因子也是质数,直接添加
        if (num != 1) {
            sb.append(num);
        }
		
        // 输出结果
        System.out.print(sb);
    }
}
全部评论

相关推荐

运营你豪哥:简历改改吧-非本、求职意向技术岗、无实习经历、内容空洞 如果简历不爆改的话,应该是会持续崩溃了 1.把你教育经历放最下面去 2.蓝底照片很奇怪哈,感觉还在高中时代,建议白底重新拍一下 3.校园经历没啥必要,收集和反馈同学们对产品的意见,解决学生和老师之间的沟通,企业招聘不看这些哈 好好思考一下简历的设计和你要表达的重点,再去投简历
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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