package ch1;
public class fontPrime {
public static int[] outputPrimes(int num) {
int x = 2;//x为需检验是否为素数的数
int j = 0;//定义数组的索引
int[] p = new int[num];//定义数组,并将接收到的参数作为数组长度
int cnt = 0;//前50个素数。从0开始计数
while (cnt < num) {//在while循环内查找前50个素数,以cnt来标记找到素数的个数
int isPrime = 1;//以isPrime分辨
for (int i = 2; i < x; i++) {
if (x % i == 0) {//进入这里,即不为素数
isPrime = 0;
break;
}
}
if (isPrime == 1) {//进入这个if里,说明此时的x为素数
p[j] = x;//将素数依次赋值给数组元素
j++;//j+1,为下一个数组元素做准备
cnt++;//只有当x为素数时,cnt才加1,不然还是以原来的cnt来记录
}
x++;//无论x是否为素数,x都要加1,按顺序查找素数
}
return p;//将查找到的素数用数组存储起来,返回给主方法
}
public static void main(String[] args) {
int num=50;//定义变量,即输出前50个素数
int[] p=outputPrimes(num);//调用函数,将参数传上去,定义数组接受元素都为素数的数组
for (int i = 0; i <num; i++) {
System.out.print(p[i]);//以10行5列遍历数组
System.out.print("\t");//数与数之间留有空格,便于观察
if ((i+1)%5==0){//因为数组索引是从0开始的,所以当i+1%5==0时会进行换行
System.out.println();//换行
}
}
}
}