/**
* @author 苗晓强
* @date 2023/7/25 23:45
* 求一定范围内的质数
* 质数定义:除了1和它本身,没有其他的公约数
*/
public class PrimeNumberTest {
public static void main(String[] args) {
//求 100 以内的质数
primeNumber1();
//求 100000 以内的质数
primeNumber2();
}
private static void primeNumber2() {
int count = 0;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100000; i++){
boolean flag = true;
//Math.sqrt(i) 缩小内层循环的范围,是提高性能的一个关键点
for (int j = 2; j <= Math.sqrt(i); j++){
if (i % j == 0){
flag = false;
//查到有 除了 1 和自身能整除的数,就跳出循环,是提高性能的另一个关键点
break;
}
}
if (flag){
count++;
}
}
long end = System.currentTimeMillis();
System.out.println("查询100000以内的质数,共" + count + "个,共耗时:" + (end - start) + "毫秒!");
}
private static void primeNumber1() {
int count = 0;
long start = System.currentTimeMillis();
for (int i = 2; i <= 100; i++){
boolean flag = true;
for (int j = 2; j < i; j++){
if (i % j == 0){
flag = false;
}
}
if (flag){
count++;
}
}
long end = System.currentTimeMillis();
System.out.println("查询100以内的质数,共" + count + "个,共耗时:" + (end - start) + "毫秒!");
}
}
Java基础-求十万以内的质数
猜你喜欢
转载自blog.csdn.net/mnimxq/article/details/131929291
今日推荐
周排行