简体   繁体   English

不包括Sundaram筛号

[英]Excluding Numbers for Sieve of Sundaram

I'm working on implementing the Sieve of Sundaram . 我正在实施Sundaram筛

The first step is to get a list of Integer's such that: 第一步是获取Integer的列表,这样:

i, j are Natural Numbers, 1 <= i <= j i,j是自然数,1 <= i <= j

i + j + 2*i*j <= n i + j + 2 * i * j <= n

Here's my function. 这是我的职能。 It's supposed to generate a list of tuples of all (i, j) 's that match the above restrictions. 它应该生成满足上述限制的所有(i, j)的元组列表。

numsToRemove :: Integer -> [(Integer, Integer)]
numsToRemove n = [ (i, j) | i <- [1..n], j <- [1..n], i <= j, i >= 1, j >= 1, 
                            i * j + 2*i*j <= n]

But I'm getting non-primes in my answer. 但是我的回答不是很好。 Excluding my other work, I think that I'm making a mistake in generating this list of Integers. 除其他工作外,我认为在生成此整数列表时犯了一个错误。

Please let me know what I'm doing wrong. 请让我知道我在做什么错。

Your function checks for i * j + 2*i*j <= n but your definition asks for i + j + 2*i*j <= n . 您的函数检查i * j + 2*i*j <= n但您的定义要求i + j + 2*i*j <= n There is a * that should have been a + . 有一个*应该是+

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM