import java.util.ArrayList;
public class Five {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> list1 = new ArrayList<Integer>();
SupportLibrary sL = new SupportLibrary();
for ( int i = 1; i <= 20; i ++ ){
list = sL.primeFactorList(i);
for ( int x = 0; x < list.size(); x ++ ){
System.out.print( list.get(x) );
}
System.out.println();
}
}
}下面是我的代码和输出
2
3
22
5
23
7
222
33
25
11
223
13
27
35
2222
17
233
19
225我尝试将2222 33 5 7 11 13 17 19加到list1中,这样我就可以将它们相乘,得到最小的正数,这个正数可以被从1到20的所有数字整除。
发布于 2015-06-10 02:43:04
对于您在评论中描述的内容,您可以这样做:
if(list.get(x) == 2222 || list.get(x) <= 20){
list1.add(x)
}然而,似乎您已经知道了答案,并且您正在尝试使您的程序适应它。Project Euler的要点是,您的程序应该为您派生出答案。理想情况下,您的程序应该能够找到能被任何范围内的所有数字整除的最小正数。
试着想想你是如何知道2222是一个因素的。是什么让你特别选择了这个数字,而不是其他任何具有从1到20之间的素数分解的数字?
https://stackoverflow.com/questions/30739748
复制相似问题