public class Alone4_5{
public static void main(String[] args){
for(int i=1;i<=100;i++){
boolean a=false;
for(int j=2;j<i;j++){
if(i%j==0) a=true;
}
if(a==true) System.out.println(i+"为和数");
if(a==false) System.out.println(i+"为素数");
}
}
}

解决方案 »

  1.   

    效率太太低了  最起码  for循环中该有个 return
      

  2.   


    public class Alone4_5{
        public static void main(String[] args){
            for(int i=1;i<=100;i++){
                boolean a=false;
    //这里用i的平方根,能有效的提高效率
                for(int j=2;j<=(int)Math.sqrt(i);j++){
                    if(i%j==0) {
    a=true;
    //如果被整除,则设置a值的同时,结束里层的for循环。
    break;
    }
                }
                //if(a==true) System.out.println(i+"为和数");
                //if(a==false) System.out.println(i+"为素数");
    //a是boolean型变量,所以可以直接用a,并且可以用if ... else结构,这样可以减少判断的次数
    if(a) {
    System.out.println(i+"为和数");
    } else {
    System.out.println(i+"为素数");
    }
            }
        }
    }