按照你的要求编写的Java程序如下:
import java.util.Scanner;
public class CCT{
public static void f(int n,int m){
int i=2;
if(n<2)return;
while(!(n%i==0)){
i++;
}
if(m==1)System.out.print(i);
else System.out.print("*"+i);
f(n/i,m-1);
return;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.print(n+"=");
f(n,1);
System.out.println();
}
}
运行结果:
90
90=2*3*3*5
老了老了,想了好久 ,仅供参考....
package march;
import java.util.ArrayList;
import java.util.Scanner;
public class PrimeNumber {
static ArrayListprime_list=new ArrayList ();
static boolean isParme=false;
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int number=Integer.parseInt(in.nextLine().toString());
dealNum(number);
if(!isParme){
System.out.println("该数为质数,无质因数");
}else{
System.out.println(prime_list);
}
}
/*
* 处理数据
* */
public static void dealNum(int number){
int primeNumber=1;
//判断并寻找质因数
for (int i = 2; i < number; i++) {
if(number%i==0){ //为合数
isParme=true;
primeNumber=i;
prime_list.add(i);
//判断他是不是质数
int new_prime=number/primeNumber;
if(isPrime(new_prime)){
dealNum(new_prime);
}else{
prime_list.add(new_prime);
}
break;
}
}
}
//仅仅判断找到的质因数 是否为质数
public static boolean isPrime(int number){
boolean isPrime=false;
for (int i = 2; i < number; i++) {
if(number%i==0){ //为合数
isPrime=true;
break;
}
}
return isPrime;
}
}
public static Listexecute(int x, ArrayList contents){
for(int i = 2; i <= x ; i++){
if (x % i == 0){
contents.add(i);
execute(x / i, contents);
break;
}
}
return contents;
}
递归、再递归 。。。。。。。。