题解 | #质数因子#

质数因子

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 /= 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 /= i;
            }
        }
        // 循环结束不等于1的因子也是质数,添加
        if (num != 1) {
            sb.append(num);
        }
        // 输出结果
        System.out.print(sb);
    }
}
全部评论

相关推荐

牛客36400893...:我不是这个专业的,但是简历确实没有吸引我的亮点,而且废话太多没耐心看
0offer是寒冬太冷还...
点赞 评论 收藏
分享
dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
你已经投递多少份简历了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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