蓝桥杯试题 基础练习 分解质因数 BASIC-16 JAVA

前言

最近一直搞面试,很多写好的代码都懒得去发博客,现在补上,但是注释可能比较少,大家如果有问题请联系我

试题 基础练习 分解质因数

资源限制
时间限制:1.0s 内存限制:512.0MB

问题描述
  求出区间[a,b]中所有整数的质因数分解。

输入格式
  输入两个整数a,b。

输出格式
  每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)

样例输入
3 10

样例输出
3=3
4=22
5=5
6=2
3
7=7
8=222
9=33
10=2
5

提示
  先筛出所有素数,然后再分解。

数据规模和约定
  2<=a<=b<=10000

本题代码

import java.util.Scanner;

public class PrimeDecomposition {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int[] array = new int[b - a + 1];
        if (a == b)
            array[0] = a;
        else
            for (int i = a, j = 0; i <= b; i++, j++)
                array[j] = i;
        for (int value : array) {
            StringBuffer st = new StringBuffer(value + "=");
            int z = 2;
            while (z <= value) {
                if (value % z == 0) {
                    if (st.charAt(st.length() - 1) != '=') st.append("*");
                    st.append(z);
                    value = value / z;
                    z = 2;
                } else
                    z++;
            }
            System.out.println(st);
        }
    }
}
posted @ 2020-04-09 20:21  爱做梦的子浩  阅读(150)  评论(0编辑  收藏  举报