埃氏筛法
题目:
用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。
输出:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
分析:“先去掉2的倍数,再去掉3的倍数,再去掉5的倍数”,可以运用数组和标记元素的方法。
代码如下:
package 埃式塞法; public class pan_duan_su_shu { public static void main(String[] args) { Integer[] a=new Integer[100]; int i,j; for(i=0;i<99;i++){ a[i]=i+2; } for(i=2;i<=50;i++){ for(j=2;j<99;j++){ if(a[j]%i==0&&a[j]/i!=1){//需要注意a[j]/i!=1,若不加此条件则不可能五十以内的数不可能进入if语句 a[j]=0; } } } for(i=0;i<99;i++){ if(a[i]!=0){ System.out.println(a[i]); } } } }
转自:http://www.cnblogs.com/chance88/p/4485790.html
祝你早日攒够失望,然后开始新的生活。