class FindFac {
                long start=System.currentTimeMillis();
public static void main(String[] args) {
for(int i=2;i<=100;i++){
System.out.print(i+"的因子为:");
for(int j=2;j<=i/2;j++){
if(i%j==0){
System.out.print(j+"  ");
}
}
System.out.println();
}

long end=System.currentTimeMillis();
System.out.println("Time:"+(end-start)+"ms");
}}因数就是所有能够整除原数的数,不是质因数。
上面是我写的代码,但是书上提示这个程序的效率仍然可以再提高,所以请大家帮忙看看怎么改?
先谢谢啦~!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Cupid1984】截止到2008-07-13 01:14:58的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:2                        得分贴总数量:1                        回帖的得分率:50%                      
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    能整除原数的数,不是质因数,那你的程序没有办法输出全部的因数。如果是输出质因数,可以将for循环上界锁定在原数的平方根,1/2太大了。