-3

20 分以上で出力を取得しています。すばやく出力する時間を短縮する方法はありますか

public class Problem10 {
public static void main(String[] args) {
long temp =0;   
 int n=2000000;
 for(long i=2; i<n; i++){
 System.out.println((i));
     boolean isprime = true;
  for(long j=2; j<i; j++){
       if(i%j==0){
        isprime =false;    
           break;
          }
      }

  if(isprime)
   {temp +=i;

   }

  }
   System.out.println(temp);

} 

}
4

3 に答える 3

3

あなたのプログラムの複雑さを計算すると、おおよそBigO(n*n). ここで、n値がの場合、タスク全体を完了するには反復2000000が必要です。2000000 * 2000000

これは非常に大きな時間です。printlnまだ実行されていることを思い出させるループに入れることをお勧めします。:)

于 2013-02-28T06:17:20.207 に答える
0

temp と int のデータ型を long に変更するとうまくいきます

于 2013-02-28T06:09:11.757 に答える