编写程序,产生30个素数,按从小到大的顺序放入数组prime[]中

img

public class test {
    public static void main(String[] args) {
        int prime[] = new int[30];
        int i,j;
        int flag;//标识某个数是不是素数
        int cnt = 0;//统计素数的个数 
        for(i=3;i<=1000;i++){ 
            //内循环判断i是不是素数 
            flag = 0;//默认i是素数
            for(j=2;j<i;j++){
                if(i % j == 0){
                    flag = 1;//表示i不是素数 
                    break;
                }
            } 
            if(flag==0){ //flag=0表示i是素数 
                prime[cnt++] = i;
            }
            if(cnt>=30)
                break;
        } 
        for(i=0;i<30;i++) {
            
            if(i%10==0 && i>0)
                System.out.println("");
            System.out.print(prime[i] +"\t");
        }
    }     
}

代码如下:

public static void main(String[] args) {
        int nmb =0;
        int i=0,j = 2;
        int[] prime = new int[30];
        //随机生成30个素数
        while(nmb<30){
            int v = (int) (Math.random() * 100000); //生成一个随机数
            //判断随机数是否是素数
            for(j = 2;j<v;j++){
                if(v%j == 0) break;
            }
            //如果是素数就放入prime数组中
            if(j == v){
                prime[nmb] = v;
                nmb++; //素数个数+1
            }
                
        }
        //prime数组从小到大排序
        for( i=0;i<29;i++){
            for( j = 0;j<29-i;j++){
                if(prime[j] > prime[j+1]){
                    int t = prime[j];
                    prime[j] = prime[j+1];
                    prime[j+1] = t;
                }
            }
        }
        
        //显示
        for(i=1;i<=30;i++){
            System.out.print(prime[i-1] + "  ");
            if(i%10 ==0)
                System.out.println();
        }
        
    }

从2开始找就行了啊,找到就放入prime[ ]数组,这不就从小到大了吗!