我正在研究一個主要涉及因素的「ArrayListFunHouse」程序。ArrayList =查找複合或素數
有兩種方法:一種找出除數字本身和一個數字之外的每個數字的因子的方法,以及另一種找出哪些因子是複合和/或素數的方法,以及從數組中去除所有素數。
這裏是主程序:
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import static java.lang.System.*;
public class ArrayListFunHouse
{
public static ArrayList<Integer> getListOfFactors(int number)
{
int i=0;
ArrayList<Integer> factors = new ArrayList<Integer>();
for(i=2;i<=number-1;i++){
if(number%i==0)
factors.add(i);
}
Collections.sort(factors);
return factors;
}
public static void keepOnlyCompositeNumbers(List<Integer> nums)
{
/*
//GET HELP FOR THIS PART
*/
}
}
注意,我離開了找合數法空,因爲我真的不知道該怎麼做在那裏。嘗試來自互聯網的其他解決方案不起作用。
這裏是流道:
import java.util.Scanner;
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import static java.lang.System.*;
public class ArrayListFunHouseRunner
{
public static void main(String args[])
{
System.out.println(ArrayListFunHouse.getListOfFactors(9));
System.out.println(ArrayListFunHouse.getListOfFactors(23));
System.out.println(ArrayListFunHouse.getListOfFactors(50));
System.out.println(ArrayListFunHouse.getListOfFactors(100));
System.out.println(ArrayListFunHouse.getListOfFactors(762));
Integer[] nums = {2,6,8,9,10,12,13,15,17,24,55,66,78,77,79};
List<Integer> list = new ArrayList<Integer>(Arrays.asList(nums));
System.out.println(list);
ArrayListFunHouse.keepOnlyCompositeNumbers(list);
System.out.println(list);
}
}
澆道的該部分:
Integer[] nums = {2,6,8,9,10,12,13,15,17,24,55,66,78,77,79};
List<Integer> list = new ArrayList<Integer>(Arrays.asList(nums));
System.out.println(list);
ArrayListFunHouse.keepOnlyCompositeNumbers(list);
System.out.println(list);
依賴於複合數目的方法,這是爲了從數組中刪除素數,如我已經說過了。
我已經想出了與第一種方法相關的所有內容。這只是我堅持的第二種方法。
'keepOnlyCompositeNumbers'的想法是,你可以遍歷列表,每個數字n都可以調用'getListOfFactors'。那麼如果返回列表是空的=> n是素數。所以你可以將n從列表中刪除。 –