两种解法~谢谢给我解惑的人 //2。输出a 到 b之间的素数 解法1 public static void primeNumber1(int primeA,int primeB){ //如果前面那个数比后面那个数大,那么调换位置,以后可以改成让用户输入的 if(primeA>primeB){ int temp=primeA; primeA=primeB; primeB=temp; } //在循环外定义 int i,j; for(i=primeA;i<primeB+1;i++){ for(j=2;j<i;j++){ if(i%j==0) break; } //判断是否循环到最后,也可以在大循环外加个判断boolean flag=false; if(i==j) System.out.println(i+" 是一个素数"); } } //3。输出a 到 b之间的素数 解法2 public static void primeNumber2(int primeA,int primeB){ //如果前面那个数比后面那个数大,那么调换位置,以后可以改成让用户输入的 if(primeA>primeB){ int temp=primeA; primeA=primeB; primeB=temp; } //在循环外定义 int i,j; for(i=primeA;i<primeB+1;i++){ //加个开关 boolean flag=true; for(j=2;j<(int)Math.sqrt(i)+1;j++){//一定要+1否则在Math.sqrt(i)<2的情况下,判断失败 if(i%j==0){ flag=false;//关上开关 break; } } //System.out.println(flag); if(flag==true) System.out.println(i+" 是一个素数"); } }