将一个正整数分解质因数,例如输入90,打印出90=2*3*3*5.
我自己写了一段代码,只是还有部分代码不知道该怎么写
int k=2;
int n,m=0;
/* System.out.read(n);
输入部分不知怎么写
*/
if(n!=k)
{
  m=n%k;
  j=n/k;  if(m==0)
 {
  System.out.print(k);
  n=j;
 }
else
  k=k+1;
}
else
System.out.println(n+"="+k);

解决方案 »

  1.   


    int k=2; 
    int n,m=0; 
    Scanner sc = new Scanner(System.in);
    n = sc.nextInt();
    m = n;
    boolean f=trur;
    for (int i=2; i<=2/n; i++) { //判断是否是素数
        if (n%i == 0) {
            f = false;
            break;
        }
    }
    if (f) {
        System.out.println(n + "=1*" + n);
    } else {
        boolean s = false;
        int i = 0;
        while (n > 0)
            for (i=2; i<=n/2; i++) {
                if (n%i == 0) { //如果i是n的因数
                    f = true;
                    for (int j=2; j<=i/2; j++) { //判断i是不是素数
                        if (i%j == 0) {
                            f = false;
                            break;
                        }
                    }
                    if (f) {
                        if (s) { //如果不是第一次打印
                            System.out.print("*" + i);
                        } else { //如果是第一次打印
                            System.out.print(i);
                            s = true;
                        }
                        n /= i;
                        break;
                    }
                }            
            }       
            if (i > n/2) {
                break;
            }
        }
        System.out.println("*" + n + "=" + m);
    }
      

  2.   

    for (int i=2; i<=n/2; i++)
      

  3.   

    用递归吧,代码如下:
    class ccc{
    public ccc(){}
    public void fengjie(int n){
    for(int i=2;i<=n/2;i++){
    if(n%i==0){
    System.out.print(i+"*");
    fengjie(n/i);
    }
    }
    System.out.print(n);
    System.exit(0);///不能少这句,否则结果会出错
    }
    public static void main(String[] args){
     String str="";
     String  res="";
     ccc c=new ccc();
     str=javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
     int N;
     N=0;
     try{
      N=Integer.parseInt(str);
      }catch(NumberFormatException e){
      e.printStackTrace();
      }
    System.out.print(N+"分解质因数:"+N+"=");
    c.fengjie(N);
    }
    }
      

  4.   

    把这两句加上(忘了,不好意思):
        if(str.equals("exit"))
            System.exit(0);