埃氏筛
定义:埃拉托斯特尼筛法,简称埃氏筛。是由希腊数学家埃拉托斯特尼提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数全部剔除,剩下的就是素数。
Java代码实现:
1 Scanner scan = new Scanner(System.in); 2 int L = scan.nextInt(); 3 int[] nums = new int[100000]; 4 int count=0; 5 Arrays.fill(nums, 1); 6 nums[0] = 0; 7 nums[1] = 0; 8 for (int i = 2; i <100000; i++) 9 { 10 if(nums[i]==1) 11 { 12 for (int j = i*2; j < 100000; j=j+i) 13 { 14 nums[j] = 0; 15 } 16 } 17 18 }
因为查找剩下的素数,然后再与根号n比较特别麻烦,所以还是直接将0到n所有数都遍历了一遍。
数组nums[]记录的是素数的标志位,先全部置1,若不是素数,置0。