基础练习——分解质因数

程序员-idea 成神之路
新星创作者: Java技术领域
2022-01-31 11:29:05
    问题描述
          求出区间[a,b]中所有整数的质因数分解。
        输入格式
          输入两个整数a,b。
        输出格式
          每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
        样例输入
        3 10
        样例输出
        3 = 3
        4 = 2 * 2
        5 = 5
        6 = 2 * 3
        7 = 7
        8 = 2 * 2 * 2
        9 = 3 * 3
        10 = 2 * 5
        提示
          先筛出所有素数,然后再分解。
public class day16 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        for (int i = a; i <= b; i++) {
            int temp = i;
            System.out.print(temp + "=");
            boolean flag = false;
            while (temp != 1) {
                //每次从小到大找,找到一个就求除数,然后重新开始找
                for (int j = 2; j <= temp; j++) {
                    if (isPrimer(j) && temp % j == 0) {
                        temp /= j;
                        if (flag) {
                            System.out.print("*");
                        }
                        System.out.print(j);
                        flag = true;
                    }
                }
            }
            System.out.println();
        }
    }
    //判断素数
    private static boolean isPrimer(int j){
    if(j==0){return false;}
    else if(j==2||j==3){
        return true;
        }else{
        for (int i = 2; i <Math.sqrt(j*j) ; i++) {
            if(j%i==0){return false;}
        }
    }
    return true;
    }
}

 

...全文
78 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17

社区成员

发帖
与我相关
我的任务
社区描述
java新手小白
社区管理员
  • 程序员-idea
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧