#4075. 分解质因数

分解质因数

题目描述

求出区间[a,b]中所有整数的质因数分解。 输入格式   输入两个整数a,b。 输出格式   每行输出一个数的分解,形如k=a1*a2*a3...(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 提示   先筛出所有素数,然后再分解。 数据规模和约定   2<=a<=b<=10000 代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); List list = new ArrayList(); for (int i = m; i < n+1; i++) { list.add(i); } for (Iterator iterator = list.iterator(); iterator.hasNext();) { Integer a = (Integer) iterator.next(); System.out.print(a+"="); print(a); } } public static void print(int a){ int i = 2; while(a>1) { if(a%i==0){ System.out.print(i); if(a/i>1){ System.out.print("*"); } a /= i; }else{ i++; } } System.out.println(); } }

输入格式

输入两个整数a,b。 输出格式   每行输出一个数的分解,形如k=a1*a2*a3...(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 提示   先筛出所有素数,然后再分解。 数据规模和约定   2<=a<=b<=10000 代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); List list = new ArrayList(); for (int i = m; i < n+1; i++) { list.add(i); } for (Iterator iterator = list.iterator(); iterator.hasNext();) { Integer a = (Integer) iterator.next(); System.out.print(a+"="); print(a); } } public static void print(int a){ int i = 2; while(a>1) { if(a%i==0){ System.out.print(i); if(a/i>1){ System.out.print("*"); } a /= i; }else{ i++; } } System.out.println(); } }

输出格式

每行输出一个数的分解,形如k=a1*a2*a3...(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 提示   先筛出所有素数,然后再分解。 数据规模和约定   2<=a<=b<=10000 代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); List list = new ArrayList(); for (int i = m; i < n+1; i++) { list.add(i); } for (Iterator iterator = list.iterator(); iterator.hasNext();) { Integer a = (Integer) iterator.next(); System.out.print(a+"="); print(a); } } public static void print(int a){ int i = 2; while(a>1) { if(a%i==0){ System.out.print(i); if(a/i>1){ System.out.print("*"); } a /= i; }else{ i++; } } System.out.println(); } }
3 10
样例输出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
提示
  先筛出所有素数,然后再分解。
数据规模和约定
  2<=a<=b<=10000


代码:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int m = sc.nextInt();
       int n = sc.nextInt();
       List list = new ArrayList();
       for (int i = m; i < n+1; i++) {
          list.add(i);
       }
       for (Iterator iterator = list.iterator(); iterator.hasNext();) {
          Integer a = (Integer) iterator.next();
          System.out.print(a+"=");
          print(a);
       }
    }
    public static void print(int a){
       int i = 2;
       while(a>1) {
          if(a%i==0){
              System.out.print(i);
              if(a/i>1){
                 System.out.print("*");
              }
              a /= i;
          }else{
              i++;
          }
       }
       System.out.println();
    }

}
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
提示
  先筛出所有素数,然后再分解。
数据规模和约定
  2<=a<=b<=10000


代码:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       int m = sc.nextInt();
       int n = sc.nextInt();
       List list = new ArrayList();
       for (int i = m; i < n+1; i++) {
          list.add(i);
       }
       for (Iterator iterator = list.iterator(); iterator.hasNext();) {
          Integer a = (Integer) iterator.next();
          System.out.print(a+"=");
          print(a);
       }
    }
    public static void print(int a){
       int i = 2;
       while(a>1) {
          if(a%i==0){
              System.out.print(i);
              if(a/i>1){
                 System.out.print("*");
              }
              a /= i;
          }else{
              i++;
          }
       }
       System.out.println();
    }

}

提示

先筛出所有素数,然后再分解。 数据规模和约定   2<=a<=b<=10000 代码: import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); List list = new ArrayList(); for (int i = m; i < n+1; i++) { list.add(i); } for (Iterator iterator = list.iterator(); iterator.hasNext();) { Integer a = (Integer) iterator.next(); System.out.print(a+"="); print(a); } } public static void print(int a){ int i = 2; while(a>1) { if(a%i==0){ System.out.print(i); if(a/i>1){ System.out.print("*"); } a /= i; }else{ i++; } } System.out.println(); } }

来源

蓝桥杯 基础训练