项目欧拉3解决方案

时间:2012-12-20 20:24:23

标签: java if-statement return-value

来自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部分感到有些困惑。 n在if语句中返回之后是否会假设i的值?为什么呢?

2 个答案:

答案 0 :(得分:2)

没有。它返回未更改的参数以指示它是素数。

如果它不是素数,则返回表明它不是素数的因子。

答案 1 :(得分:0)

让我们拿一个数字

num可被分割到一半(即因子)

实施Sieve of Eratosthenes以查找prime_numbers。这是查找Prime数字的有效过程。然后检查返回的素数是否除以“num”......