[英]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.