import java.util.ArrayList;
import java.util.List;
/**
-
-
素数 prime numbers
*/
public class PrimeNumbers {
public static void main(String[] args) {
// 测试判断素数
int num = 17;
System.out.println(num + " 是素数吗?" + isPrime(num));// 输出100以内所有素数
int n = 100;
Listprimes = getPrimesWithin(n);
System.out.println(n + "以内的素数:" + primes);
System.out.println("总数:" + primes.size() + "个");
}
/**
- 判断一个数是否为素数
*/
public static boolean isPrime(int num) {
if (num < 2) return false;
// 优化:只判断到平方根即可,因数成对出现
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
/**
- 获取n以内的所有素数
*/
public static ListgetPrimesWithin(int n) {
ListprimeList = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime(i)) primeList.add(i);
}
return primeList;
}
}
-
