质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。
判断一个数是否是素数(质数)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
boolean isPrime = true;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数");
int num = sc.nextInt();
if (num > 0) {
int k = (int) Math.sqrt(num);//k为num的正平方根,取整数
for (int i = 2; i <= k; i++) {
if (num % i == 0) {
isPrime = false;//不是素数
break;
}
}
}
if (isPrime) {
System.out.println(num + "是素数");
} else {
System.out.println(num + "不是素数");
}
}
}
输出1~1000之间的素数
思路:偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。
public class Test {
public static void main(String[] args) {
boolean isPrime = true;
int PrimeCount=0;
for (int i = 3; i <= 1000; i += 2) {
int k = (int) Math.sqrt(i);//k为num的正平方根,取整数
isPrime = true;
for (int j = 2; j <= k; j++) {
if (i % j == 0) {
isPrime = false;//不是素数
break;
}
}
if (isPrime) {
PrimeCount++;
System.out.print(i+"\t");
if(PrimeCount % 5 == 0){
System.out.println();
}
}
}
}
}