求素数算法

常识:2是第一个素数。

求素数核心代码:

求素数关键两步:

  • 判断某数是不是素数时,从2开始被这个数除,除到这个数的平方根为止就行了。
  • 相除时,当没有被整除时,就及时退出循环。
for(int i = 2; i <= m; i++) {//m以内素数
	int j = 0;
	for(j = 2; j <= Math.sqrt(i); j++) {
		if(i % j == 0)break;
	}
	if(j == (int)Math.sqrt(i) + 1) {//Math.sqrt()的返回值是浮点型,需转型
		//i是素数
	}
}

打表求10000以内素数方法:

常识:10000以内素数有1229个,记不住可以编程求一下。

public static int[] getPrime(){
	int []arr = new int[1229];
	int index = 0;
	for(int i = 2; i <= 10000;i++) {
		int j = 0;
		for(j = 2;j <= Math.sqrt(i);j++) {
			if(i % j == 0)break;
		}
		if(j == (int)Math.sqrt(i) + 1) {
			arr[index++] = i;
		}
	}
	return arr;//arr内存放着10000以内的所有素数。
}

Guess you like

Origin blog.csdn.net/weixin_48898946/article/details/121063418