/*
输入一个整数,输出该数的所有素数因子
*/public class SuShu{
public static void main(String[] args){
int num,yin1,yin2,temp1,temp2,i;

num=Integer.parseInt(args[0]);

temp1=(int)Math.sqrt(num);             //num的素数范围
  
  for(yin1=temp1;yin1<=num/2;yin1++)
    for(yin2=2;yin2<=temp1;yin2++)
    {
     if(yin1*yin2==num){              //找出NUM的因子
     temp2=(int)Math.sqrt(yin2);
        for(i=2;i<=temp2;i++){       //判断yin2是否为素数
        if(yin2%i==0) continue;
          System.out.print(yin2+"\t");
          }
     }
    }
}
}能否帮我看看啊,这是我的第一道JAVA题,谢谢!

解决方案 »

  1.   

    //没有考虑效率
    public class SuShu {
    public static void main(String[] args) {
    int num, yin1, yin2, temp1, temp2, i;
    boolean flag=false;
    num = Integer.parseInt(args[0]); temp1 = (int) Math.sqrt(num); // num的素数范围 for (yin1 = 2; yin1 <= num; yin1++)
    for (yin2 = 2; yin2 <= num/2; yin2++) {
    flag=true;;
    if (yin1 * yin2 == num) { // 找出NUM的因子
    temp2 = (int) Math.sqrt(yin2);
    for (i = 2; i <= temp2; i++) { // 判断yin2是否为素数
    if (yin2 % i == 0)
    {
    flag=false;
    break;
    }
    }
    if(flag)
    {
    System.out.print(yin2 + "\t");
    }

    }
    }
    }
    }