import java.util.Scanner;
/**
*
* @author YJ
*
*/
public class Two {
int allNumber[];
int n;
/**
*
* @param n 需要统计质因子的数的数量
*/
public Two(int n){
this.n=n;
allNumber=new int[n];
}
private void Input(){
Scanner in=new Scanner(System.in);
System.out.println("输入任意"+n+"真正数:");
for(int i=0;i<allNumber.length;i++){
System.out.print("输入第"+(i+1)+"个输入:");
allNumber[i]=in.nextInt();
}
}
private boolean isPrime(int m){
boolean bl=true;
for(int i=2;i<m;i++){
if(m%i==0)
bl=false;
}
return bl;
}
/**
* 计算并且统计质因子
*/
public void Caculation(){
Input();
int allPrime[]=new int[100];
for(int i=0;i<allPrime.length;i++){
allPrime[i]=0;
}
int number=0;
int temp=0;
for(int i=0;i<allNumber.length;i++){
for(int j=2;j<allNumber[i];j++){
if(allNumber[i]%j==0){
if(isPrime(j)){
allPrime[number]=j;
number++;
}
}
}
System.out.print(allNumber[i]+"的素数是: ");
for(int j=number;j>=temp;j--){
if(allPrime[j]!=0){
System.out.print(" "+allPrime[j]+" ");
}
}
temp=number;
System.out.println();
}
}
}
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int number;
System.out.print("输入个数:");
number=new Scanner(System.in).nextInt();
//new One(number).Output();
new Two(number).Caculation();
}
}
输出结果:
输入个数:5
输入任意5真正数:
输入第1个输入:12
输入第2个输入:21
输入第3个输入:34
输入第4个输入:15
输入第5个输入:18
12的素数是: 3 2
21的素数是: 7 3
34的素数是: 17 2
15的素数是: 5 3
18的素数是: 3 2