0
我正在学习PLINQ。我试着在一个网站上给出的例子。但是,我可以看到结果是错误的,而且当我多次重新运行程序时也会有所不同。首先它不会给出所有素数,其次它只给出9591个随机素数。PLINQ结果是错误的,并在不同的运行中有所不同
IEnumerable<int> numbers = Enumerable.Range (3, 100000-3);
var parallelQuery =
from n in numbers.AsParallel()
where Enumerable.Range (2, (int) Math.Sqrt (n)).All (i => n % i > 0)
select n;
int[] primes = parallelQuery.ToArray();
感谢任何帮助!
它以何种方式变化?数字的顺序可能会有所不同,因为您没有对它们进行排序。 – Kaerber
从3到(100000-3),有超过9591的素数,但它只显示9591个素数,而不是休息。 –
你范围不包括2,看我的答案。 – Kaerber