我开班前在家自学写过一个类似的1-500内质数排序的 发出来给大家参考下  因为是刚看到面向对象的时候写的, 没有用到任何高级功能  写的也不优化   但是可以满足你的需要  只要加一个>100的判定就行了 
 
- /**
 
 - 需求:1-500以内的质数从大到小排序
 
 - 思想:先整理质数保存到数组B,然后排序
 
 - */
 
  
- class  Sorting
 
 - {
 
 -         void print(int[] b)//打印
 
 -         {
 
 -                 System.out.print("{");
 
 -                 for (int t=0;t<b.length-1 ;t++ )
 
 -                 {
 
 -                         System.out.print(b[t]+",");
 
 -                 }
 
 -                 System.out.println(b[b.length-1]+"}");
 
 -         }
 
 -         int[] sort(int[] b)//冒泡排序
 
 -         {
 
 -                 for (int x=0;x<b.length-1 ;x++ )
 
 -                 {        
 
 -                         for (int y=0;y<b.length-1-x && b[y]<b[y+1] ;y++ )
 
 -                         {        
 
 -                                 change(b,y,y+1);
 
 -                         }
 
 -                 }
 
 -                 return b;
 
 -         }
 
  
-         void change(int[]r,int a, int b)//置换位置
 
 -         {
 
 -                 int temp;
 
 -                 temp=r[a];
 
 -                 r[a]=r[b];
 
 -                 r[b]=temp;
 
 -         }
 
  
-         int[] choose(int[] a)//返回质数数列
 
 -         {
 
 -                 int i=0;//非质数数字的计数值
 
 -                 for (int x=500;x>=1 ;x-- )//遍历1-500,清空数组中的非质数
 
 -                 {
 
 -                         out: for (int y=2;y<=x/2 ;y++ )//模数循环
 
 -                         {
 
 -                                 if (x%y==0)         //如果x能被除2到x/2的任何数整除,则x不是质数,
 
 -                                 {
 
 -                                         a[x-1]=-1;      //将所有不是质数的值赋值为-1
 
 -                                         i++;
 
 -                                         break out;      //如果能被整除一次代表非质数,跳出到下一个数开始循环
 
 -                                 }
 
 -                         }
 
 -                 }
 
 -                 a[0]=-1;// 数字1不是质数,手动赋值
 
 -                 int[] b=new int[500-i-1];//创建质数数组b,总数为500减去非质数的数值再减去1
 
 -                 int index=0;
 
 -                 for (int x=1;x<=500 ;x++ )//将a数组剩余的质数赋值到b
 
 -                 {
 
 -                         if (a[x-1]!=-1)
 
 -                         {
 
 -                                 b[index]=a[x-1];
 
 -                                 index++;
 
 -                         }
 
 -                 }
 
 -                 return b;
 
 -         }
 
  
-         int[] add(int[] a)
 
 -         {
 
 -                 for (int x=0;x<a.length ;x++ )//为数组赋值1-500
 
 -                 {
 
 -                         a[x]=x+1;
 
 -                 }
 
 -                 return a;
 
 -         }
 
  
-         public static void main(String[] args) 
 
 -         {
 
 -                 int[] init=new int[500];
 
 -                 Sorting array =new Sorting();
 
 -                 init = array.add(init);
 
 -                 int[] s = array.choose(init);
 
 -                 init = null;//清空原始数组
 
 -                 array.sort(s);
 
 -                 array.print(s);
 
 -                 
 
 -         }
 
 - }
 
 
  复制代码 |