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[ ]数组,这不就从小到大了吗!