方法一: 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("程序结束!~"); }