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、运行效果

java算法初学之求素数_java

3、算法思想

for循环遍历2到1024的数字,定义一个boolean作为标记。i++,j--。

如果j能被i整除,则bool标记为false,结束此循环。

如果j能被i整除,则bool标记为true,list.add(i)添加 i。

最后foreach循环遍历list即可得到1到1024之间的素数。