这是看了浙江大学翁恺老师的讲解视频之后才学到的方法,我之前都是这样子求素数的:
7-2 判断素数 (10分)
这是视频讲的:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] primes = new int[50];
primes[0] = 2;
int cnt = 1;
MAIN_LOOP:
for (int x = 3; cnt < primes.length; x++) {
for (int i = 0; i < cnt; i++) {
if (x % primes[i] == 0) {
continue MAIN_LOOP;
}
}
primes[cnt++] = x;
}
for (int k : primes) {
System.out.print(k + " ");
}
System.out.println();
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean[] isPrime = new boolean[100];
for (int i = 2; i < isPrime.length; i++) {
isPrime[i] = true;
}
for (int i = 2; i < isPrime.length; i++) {
if (isPrime[i]) {
for (int k = 2; i * k < isPrime.length; k++) {
isPrime[i * k] = false;
}
}
}
for (int i = 0; i < isPrime.length; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
System.out.println();
}
}