尽管求素数在程序设计里面是基础的基础,但是对于一些初学者来说还是很难,而这类问题不管是面向对象语言还是面向过程语言的实现方法大至都是相同的,我这里写了JAVA语言的实现,供参考。
一般的求素数算法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
publicclassPrime{ /** * 一般求素数方法 * * @param args */publicstaticvoidmain(String[]args){for(inti=2; i<100; i++){intj;for(j=2; j<(int)(Math.sqrt(i)+1); j++) {if(i%j==0){break;}} if(j>(int)Math.sqrt(i)){System.out.print(i+" ");}} } }筛法求素数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
publicclassPrime2{ /** * 筛法求素数 * * @param args */publicstaticvoidmain(String[]args){// TODO Auto-generated method stubintn=100;int[]array=newint[n];for(inti=2; i<n; i++)array[i]=i;for(inti=2; i<n; i++){if(array[i]!=0){intj, temp; temp=array[i];for(j=2*temp; j<n; j=j+temp){array[j]=0;}}}for(inti=0; i<n; i++){if(array[i]!=0){System.out.print(i+" ");}} } }

