Eratosthenes筛法
import java.util.*;
public class Main {
public static void main(String[] args){
int[] nums = new int[100000];
boolean[] vis = new boolean[50001];
int n = 50000;
int m = (int) Math.sqrt(n+0.5);
for(int i = 2;i<=m;i++){
if(!vis[i]){
for(int j = i*i;j<=n;j += i){
vis[j] = true;
}
}
}
int cnt = 1;
for(int i = 2;i<=50000;i++){
if(vis[i] == false){
nums[cnt++] = i;
}
}
System.out.println(nums[2019]);
}
}
本文介绍了一种古老的数学算法——埃拉托斯特尼筛法,并提供了详细的Java代码示例。通过这段代码,读者将了解如何使用该方法找出50000以内的所有质数,重点在于算法原理和其实现过程。
836

被折叠的 条评论
为什么被折叠?



