0

https://github.com/nayuki/Project-Euler-solutions/blob/master/p003.javaからの次のスニペット:

private static long smallestFactor(long n) {    
  for (long i = 2, end = Library.sqrt(n); i <= end; i++) {    
    if (n % i == 0)    
      return i;   
  }    
  return n; // Prime    
}

その部分に少し戸惑いましたreturn n。if ステートメントで返された後nの値を想定するつもりですか? iなんで?

4

2 に答える 2

2

いいえ。素数であることを示すために、変更されていないパラメーターを返します。

素数でない場合、素数でないことを示す因数を返します。

于 2012-12-20T22:47:19.093 に答える
0

numを取ることができます。

numはその半分まで除算可能です(つまり係数)

prime_numbersを見つけるためにSieveofEratosthenesを実装します。これは素数を見つけるための効率的なプロセスです。そして、返された素数が「num」を除算するかどうかを確認します。

于 2013-01-20T13:14:24.593 に答える