将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。   写出关键代码

解决方案 »

  1.   

    不怎么难  写了个只分解90的  在难点的根据我写的改改就行了 多动手哈
    public class Test {
    public static void main(String args[]) {
    int a = 90;

    for(int i=2;i<=a;i++) {
    if(a%i==0) {
    System.out.print(i+" ");
    a = a/i;
    i--;
    }
    }
    }
    }
      

  2.   


    import java.util.*;public class Test
    {
    public static void main(String[] args)
    {
    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();
    int save = num;
    ArrayList<Integer> arrayList = new ArrayList<Integer>();
    while (num != 1)
    {
    for (int i = 2; i <= num; i++)
    {
    if (num % i == 0)
    {
    arrayList.add(i);
    num /= i;
    }
    }
    }
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append(save + "=");
    for (Integer integer : arrayList)
    stringBuilder.append(integer + "*");
    stringBuilder.deleteCharAt(stringBuilder.length() - 1);
    System.out.println(stringBuilder.toString());
    }
    }
      

  3.   


    public class FenJieZhi {
    public static void main(String[] args) {
    int num=Integer.parseInt(args[0]);
    int nums[]= new int[50];
    int index=0;
    int tem=num;
    for(int i=2;i<=tem;i++){  //将得到的每一个因数存在数组nums中
    while(tem%i==0){
    nums[index]=i;    //如果num世俗书nums[0]=num;
    index++;
    tem/=i;
    }
    }
    if(nums[0]==num){   //如果数是素数,执行一下
    nums[0]=1;
    nums[1]=num;
    index=2;
    }
    System.out.print(num+"="+nums[0]);//打印num=nums[0]
    for(int k=1;k<index;k++){         //打印算式的后半部分 *num[1]*....
    System.out.print("*"+nums[k]);
    }
    }}//我自己写的有点麻烦
      

  4.   

    递归比较简单!希望lz能自己理解啦!不然就对不起二楼咯……
    static void resolve(int n) {
    if(n == 1) 
    return ;
    if(n % 2 == 0) {
    System.out.print(2 + "\t");
    resolve(n / 2);
    } else {
    int i;
    for(i = 3; i <= n; i++)
    if(n % i == 0) {
    System.out.print(i + "\t");
    break;
    }
    resolve(n / i);
    }
      

  5.   


    for(i = 3; i <= n; i++) ---> for(i = 3; i <=  n; i = i + 2) 这里步长为2,否则单独考虑质数2就没有意义了