法1:如果一个数字是素数,那么就只能整除1和自己本身。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int i;
for (i = 2;i < n;i++) {
if(n%i == 0) {
System.out.println("n不是素数:"+n);
break;
}
}
if(i >= n) {
System.out.println(n + "是素数");
}
}
法二:任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于2/n的
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int i;
for (i = 2;i <= n/2;i++) {
if(n%i == 0) {
System.out.println("n不是素数:"+n);
break;
}
}
if(i > n/2) {
System.out.println(n + "是素数");
}
}
法三:任何一个数字n,都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于根号n的。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int i;
for (i = 2;i <= Math.sqrt(n);i++) {
if(n%i == 0) {
//System.out.println("n不是素数:"+n);
break;
}
}
if(i > Math.sqrt(n)) {
System.out.println(n + "是素数");
}
}