import java.util.List;
import java.util.Scanner;
import java.util.ArrayList;
public class Main{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int n = scan.nextInt();
List<Integer> primers = getPrimer(n);
System.out.println(primers); }
}
public static ArrayList<Integer> getPrimer(int n){
boolean[] isPrimer = new boolean[n+1];
ArrayList<Integer> primers = new ArrayList<Integer>();
if(n < 2) return primers;
for(int i = 0; i <=n; i++ ){
if(i%2 != 0) isPrimer[i] = true;
else isPrimer[i] = false; //偶数为false
}
//如果isPrimer[i]为true,即i为素数,那么i,2*i,3*i。。。一定不是素数
for(int i = 2; i <= Math.sqrt(n); i++)
for(int j = i+i; j <= n; j+=i){
if(isPrimer[i])
isPrimer[j] = false;
}
primers.add(2);
for(int i = 3; i <=n; i++){
if(isPrimer[i])
primers.add(i);
}
return primers;
}
}
求某个正整数范围内的所有素数
最新推荐文章于 2022-09-12 10:36:41 发布
