Java代碼
view sourceprint?
public class T {
/**
* 分析這個數是不是質數
* @param num
*/
public static boolean isZhishu(int num){
switch (num) {
case :
case :
case :
return true;
}
int temp=;
for(int i=;i<num/+;i++){
if(num%i==){
temp++;
break;
}
}
if(temp!=){
return false;
}
return true;
}
/**
* 得到一個數所有的因數
* @param num
* @return
*/
public static List<Integer> zhengChu(int num){
List<Integer> integers=new ArrayList<Integer>();
for(int i=;i<num/;i++){
if(num%i==){
integersadd(i);
}
}
return integers;
}
/**
*
* @param args
*/
public static void main(String[] args) {
int num=;
Set<Integer> integers=new HashSet<Integer>();
Set<Integer> integers= Ttest(num integers);
Systemoutprintln(integers);
//打印結果
for (Integer integer : integers) {
Systemoutprintln(integer);
}
}
/**
* 正式求解
* @param num
* @param data
* @return
*/
public static Set<Integer> test(int numSet<Integer> data){
if(data==null){
data=new HashSet<Integer>();
}
if(TisZhishu(num)){
Systemoutprintln(num);
dataadd(num);
}
else{
List<Integer> temp=TzhengChu(num);
for(Integer integer:temp){
test(integer data);
}
}
return data;
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26422.html