gpt4 book ai didi

algorithm - 寻找素数的快速算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:35:48 25 4
gpt4 key购买 nike

<分区>

首先 - 我在这个论坛上查了很多,但没有找到足够快的东西。我尝试创建一个函数,返回指定范围内的质数。例如,我使用 Eratosthenes 筛法(在 C# 中)实现了这个功能。我也试过阿特金筛法,但埃拉托色尼筛法运行得更快(在我的实现中):

public static void SetPrimesSieve(int Range)
{
Primes = new List<uint>();
Primes.Add(2);
int Half = (Range - 1) >> 1;
BitArray Nums = new BitArray(Half, false);
int Sqrt = (int)Math.Sqrt(Range);
for (int i = 3, j; i <= Sqrt; )
{
for (j = ((i * i) >> 1) - 1; j < Half; j += i)
Nums[j] = true;
do
i += 2;
while (i <= Sqrt && Nums[(i >> 1) - 1]);
}
for (int i = 0; i < Half; ++i)
if (!Nums[i])
Primes.Add((uint)(i << 1) + 3);
}

它的运行速度比我发现的代码和算法快两倍......应该有一种更快的方法来找到素数,你能帮我吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com