public class IsPrime {
@Test
public void test() {
int index = 1;
for (int n = 2; n <= 1000; n++) {
if (isPrime(n)) {
if (index % 5 == 0) {
System.out.println(n);
} else {
System.out.print(n + "\t");
}
index++;
}
}
}
/**
* 合数:合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。
* 自然数:是指表示物体个数的数,即由0开始,0,1,2,3,4,……一个接一个,组成一个无穷的集体,即指非负整数。
* 首先要明确什么是质数:质数的定义是大于1的自然数中,除了本身和1以外不能被其它自然数整除 优化
* :如果N是合数,那么N的因数除了根号N,其他都是成对存在的,且必定一个大于根号N一个小于根号N、 只要找到一个即可,所以只需要判断到根号N即可
*
* @param n
* @return
*/
public boolean isPrime(int n) {
if (n < 2)
throw new RuntimeException("非质数异常");
if (n <= 3)
return true;
for (int x = 2; x <= Math.sqrt(n); x++) {
if (n % x == 0)
return false;
}
return true;
}
}
求1000内的质数
最新推荐文章于 2022-03-04 11:49:34 发布