1.这是一个求解质因数的代码,但只能求出,可被num整除的因数中,为质数的部分.
2.我想要的效果是num=a*b*c*--------n 的效果
    例如:num=90
        90=2*3*3*53.哪位大师,可否在我的代码基础上,完成了.万分感谢!!!
package exercise;import java.util.*;public class ziYinShu {
public static void main(String[] args) {
// 求一个任意整数的质因数
Scanner s = new Scanner(System.in);
System.out.println("请输入任意整数:");
int num = s.nextInt();
for (int i = 2; i < num; i++) {
int result = 1;
int count = 0;
if (num % i == 0) { // 求可以被num整除的数 for (int k = 1; k <= i; k++) {
if (i % k == 0) {
count++;
}
} } // 判断i是否为质数? if (count == 2) {
result = result * i;
System.out.println(i); } }
}}

解决方案 »

  1.   

     class ziYinShu { 
    public static void main(String[] args) { 
    // 求一个任意整数的质因数 
    Scanner s = new Scanner(System.in); 
    System.out.println("请输入任意整数:"); 
    int num = s.nextInt(); 
    for (int i = 2; i < num; i++) { 
    int result = 1; 
    int count = 0; 
    while(i != num) {
    if (num % i == 0) { // 求可以被num整除的数 
    System.out.print(i + "*");
    num = num / i;
    } else 
    break;
    }

    System.out.println(num);
    } }
      

  2.   

    稍做修改
    class ziYinShu { 
    public static void main(String[] args) { 
    // 求一个任意整数的质因数 
    Scanner s = new Scanner(System.in); 
    System.out.println("请输入任意整数:"); 
    int num = s.nextInt();
    StringBuffer sb = new StringBuffer(num + "=");
    for (int i = 2; i < num; i++) { 
    while(i != num) {
    if (num % i == 0) { // 求可以被num整除的数 
    sb.append(i + "*");
    num /= i;
    } else 
    break;
    }

    System.out.println(sb.append(num));
    } }