日期:2014-05-20  浏览次数:21053 次

Linq判断素数

        static bool IsPrime(int n)
        {
            foreach (var i in Enumerable.Range(2, n-1))
            {
                if (n%i == 0) 
                    return false;
            }
            return true;
        }

        static bool IsPrime2(int n)
        {
            return Enumerable.Range(2, n - 1).All(i => n%i != 0);
        }

这两个函数都不对啊,不知道为什么
------解决方案--------------------

bool primeNumber(int n)  
{  
  bool b=true;  
    if(n<2) b=false;  
  else  
  {  
    for(int i=2;i<=(int)Math.Sqrt(n);i++)  
    {  
      if(n%i==0)  
      {  
        b=false;  
                break;  
      }  
    }  
  }  
  return b;  
}  


参考:
http://blog.csdn.net/q107770540/article/details/6324702
------解决方案--------------------
看到那个 break; 没有?
------解决方案--------------------


def isPrime(n):
    from math import sqrt
    return  n>1 and all(n % i!=0 for i in range( 2, int(sqrt(n))+1) )


Linq和Python很像啊