日期:2014-05-20  浏览次数:20732 次

如何求出1-1000的质素 (不能用除法和求余)
第一题:如题 !
还有第二题:如何将0-1之间的数开方 (不能用Math函数)

------解决方案--------------------
第一题:
Java code

        int max=1000;
        int[] ns=new int[max+1];
        for(int i=0;i<max;i++){
            ns[i]=i;
        }
        m1:for(int m=2;m<max;m++){
            int tm=ns[m];
            if(tm==0){
                continue;
            }
            for(int n=m;n<max;n++){
                int r=ns[n]*tm;
                if(r>max){
                    continue m1;
                }
                if(r>0){
                    ns[r]=0;
                }
            }
        }
        for(int n:ns){
            if(n>=2){
                System.out.print(n+",");
            }
        }