我有两种测试素数的方法.其中一个叫isPrime,另一个叫isBigPrime.我最初想要的是用我已经计算过的"小"素数来测试"大"素数,这样测试变得更快.这是我的实现:
intSqrt :: Integer -> Integer
intSqrt n = round $ sqrt $ fromIntegral n
isPrime' :: Integer->Integer -> Bool
isPrime' 1 m = False
isPrime' n m = do
if (m > (intSqrt n))
then True
else if (rem n (m+1) == 0)
then False
else do isPrime' n (m+1)
isPrime :: Integer -> Bool
isPrime 2 = True
isPrime 3 = True
isPrime n = isPrime' n 1
isBigPrime' :: Integer ->Int ->Bool
isBigPrime' …Run Code Online (Sandbox Code Playgroud) 有人可以告诉我函数末尾的"返回"是什么以及为什么我们必须在main函数的末尾写入返回0.eg
int main()
{
.....
return 0;
}
Run Code Online (Sandbox Code Playgroud)