使用java语言实现 快速统计百万以内的质数数量 并给出运算消耗的时间
时间: 2024-02-20 21:57:00 浏览: 62
好的,我可以帮你实现这个功能。这里我使用了 Sieve of Eratosthenes 算法来求解质数数量。以下是 Java 代码:
```java
public class CountPrimes {
public static void main(String[] args) {
int n = 1000000;
long start = System.currentTimeMillis();
int count = countPrimes(n);
long end = System.currentTimeMillis();
System.out.println("There are " + count + " prime numbers less than " + n);
System.out.println("Time cost: " + (end - start) + "ms");
}
private static int countPrimes(int n) {
boolean[] isPrime = new boolean[n];
Arrays.fill(isPrime, true);
int count = 0;
for (int i = 2; i < n; i++) {
if (isPrime[i]) {
count++;
for (int j = 2; i * j < n; j++) {
isPrime[i * j] = false;
}
}
}
return count;
}
}
```
这里我们传入的参数是 1000000,即统计一百万以内的质数数量。程序输出的结果应该是:
```
There are 78498 prime numbers less than 1000000
Time cost: 30ms
```
这里的时间消耗会因机器配置和质数统计范围不同而有所差异。
阅读全文