java算法初学之求素数
1、代码
import java.util.ArrayList;
import java.util.List;
/*
* 求1-1024的素数
* 素数:只能被1和本身整除
*/
public class Test {
public static void main(String[] args) {
f();
}
public static void f() {
//内存可变链表,增删慢,查找慢
List<Integer> list = new ArrayList<Integer>();
boolean bool = true;
int i,j;
for(i=2; i<1025;i++) {
j = 2;
while(j<i) {
if(i%j==0) {
bool=false; break;
}j++;
}if(bool) {
list.add(i);
}bool = true;
}
for(int l : list) {
System.out.print(l+" ");
}System.out.println("\n1024以内的素数一共有:"+list.size()+"个");
}
}
2、运行效果
3、算法思想
for循环遍历2到1024的数字,定义一个boolean作为标记。i++,j--。
如果j能被i整除,则bool标记为false,结束此循环。
如果j能被i整除,则bool标记为true,list.add(i)添加 i。
最后foreach循环遍历list即可得到1到1024之间的素数。