Java实现求某个数以内的所有质数

最近笔试遇到好多次让求素数的问题,今天在这里总结一下:

/**************************************第一种************************************/
public static List<Integer> find(int n){
		List<Integer> list = new ArrayList<Integer>();
		for (int i = 2; i <= n; i++) {
			boolean flag = true;
			for (int j = 2; j <i; j++) {
				if (i % j == 0) {
					flag = false;
				}
			}
			if (flag) {
				list.add(i);
			}
		}
		return list;
	}
/**************************************第二种(效率稍微好一点)************************************/
public static List<Integer> find(int n){
		List<Integer> list = new ArrayList<Integer>();
		for (int i = 2; i <= n; i++) {
		//去除偶数部分
			if (i % 2 == 0 && i != 2) {
				continue;
			}
			boolean flag = true;
			for (int j = 2; j <= i/2; j++) {
				if (i % j == 0) {
					flag = false;
				}
			}
			if (flag) {
				list.add(i);
			}
		}
		return list;
	}

猜你喜欢

转载自blog.csdn.net/lq1759336950/article/details/101615819