方法一:
import java.util.Scanner;
public class PrimeNumber {
/*用(int) Math.sqrt(n)求出循环上限
* isPrime()方法用来检测当前数是否为质数
*/
public static boolean isPrime(int num) {
boolean prime = true;
int limit = (int) Math.sqrt(num);
for (int i = 2; i <= limit; i++) {
if (num % i == 0) {
prime = false;
break;
}
}
return prime;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入您要判断的数:");
int n = input.nextInt();
if (isPrime(n)) {
System.out.println(n + "是质数!");
} else {
System.out.println(n+ "不是质数!");
}
}
}
方法二:
import java.util.*;
public class PrimeNumber1{
//每循环一次刷新一次循环上限,如:num=n/2; (将n/2的值赋值给num作为循环上限)
public static void main(String[]args){
Scanner input=new Scanner(System.in);
long Number,i,sum;
String answer;
boolean con=false;
do{
System.out.println("请输入一个大于2的整数:");
Number=input.nextLong();
sum=Number;
/*判断质数*/
for(i=2;i<=sum;i++){
if(Number%i==0){
con=true;
System.out.println("约数为:"+i);
break;
}else{
sum=Number/i;
}
}
if(con){
System.out.println(Number+"不是质数");
}else{
System.out.println(Number+"是质数");
}
System.out.println("/n是否继续(y/n)");
answer=input.next();
con=false;
}while(answer.equals("y"));
System.out.println("程序结束!~");
}
}