Tag: 素数

C#中快速素性测试的示例代码

可能重复: 最快的素数测试算法 希望参考C#中快速素性测试的示例代码,最好使用BigInteger或其他可变大小类型。

为什么将HashTable的长度设置为素数是一个好习惯?

当我点击这段时,我正在阅读Eric Lippert 关于GetHashCode指南和规则的最新博客post: 我们在这里可能更聪明; 就像List在它满了时resize一样,bucket set也可以自己resize,以确保平均bucket长度保持低位。 此外,由于技术原因,通常最好将存储桶设置长度设为素数,而不是100.我们可以对此哈希表进行大量改进。 但是这个哈希表的简单实现的快速草图现在可以做到。 我想保持简单。 所以看起来我错过了一些东西。 为什么将它设置为素数是一个好习惯?

项目欧拉问题3帮助

我正在尝试通过Project Euler工作,我在问题03上遇到障碍。我有一个适用于较小数字的算法,但问题3使用非常非常大的数字。 问题03: 13195的素数因子是5,7,13和29. 600851475143的最大素数因子是什么? 这是我在C#中的解决方案,它一直在运行,我认为接近一个小时。 我不是在寻找答案,因为我确实想自己解决这个问题。 主要是寻求一些帮助。 static void Main(string[] args) { const long n = 600851475143; //const long n = 13195; long count, half, largestPrime = 0; bool IsAPrime; half = n / 2; for (long i = half; i > 1 && largestPrime == 0; i–) { if (n % i == […]

素数公式

我正在尝试在C#中编写素数函数,我想知道以下代码是否有效。 它“似乎”与前50个数字左右一起使用。 我只是想确保它无论数量有多大都能正常工作: static bool IsPrime(int number) { if ((number == 2) || (number == 3) || (number == 5) || (number == 7) || (number == 9)) return true; if ((number % 2 != 0) && (number % 3 != 0) && (number % 5 != 0) && (number % 7 != 0) && […]

高效的算法来获得两个大数之间的素数

我是C#的初学者,我正在尝试编写一个应用程序来获取用户输入的两个数字之间的素数。 问题是:在大数(有效数字在1到1000000000范围内)时,获取素数需要很长时间,并且根据我正在解决的问题,整个操作必须在很短的时间间隔内进行。 这是问题链接以获得更多解释: SPOJ-Prime 这是我的代码中负责获取素数的部分: public void GetPrime() { int L1 = int.Parse(Limits[0]); int L2 = int.Parse(Limits[1]); if (L1 == 1) { L1++; } for (int i = L1; i <= L2; i++) { for (int k = L1; k <= L2; k++) { if (i == k) { continue; } else if (i % […]

我怎样才能测试素性?

我正在写一个带有一些素数相关方法的小库。 因为我已经完成了基础工作(也称为工作方法),现在我正在寻找一些优化。 当然,互联网是一个很好的地方。 然而,我偶然发现了一个四舍五入的问题,我想知道如何解决这个问题。 在循环中,我用它来测试一个数字,因为它的搜索效率更高,搜索直到sqrt(n)而不是n / 2甚至n – 1.但是由于舍入问题,一些数字会被跳过,因此会跳过一些素数! 例如,第10000个素数应为:104729,但“优化”版本最终为:103811。 一些代码(我知道,它可以进行更多优化,但我一次只能处理一件事): /// /// Method for testing the primality of a number eg: return IsPrime(29); /// History: /// 1. Initial version, most basic form of testing: m smaller then n -1 /// 2. Implemented m smaller then sqrt(n), optimization due to prime factoring /// /// Number […]