Tag: primes

如何选择素数来计算哈希码?

这个问题遵循Jon Skeet在这个问题上给出的答案:“ 覆盖System.Object.GetHashCode的最佳算法是什么? ”。 要计算哈希码,请使用以下算法: public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hash = 17; // Suitable nullity checks etc, of course 🙂 hash = hash * 23 + field1.GetHashCode(); hash = hash * 23 + field2.GetHashCode(); hash = hash * 23 + field3.GetHashCode(); return hash; } } […]

当生产function可以有数百万个测试用例时,TDD如何工作?

在TDD中,您选择一个测试用例并实现该测试用例然后您编写足够的生产代码以便测试通过,重构代码并再次选择一个新的测试用例并继续循环。 我在这个过程中遇到的问题是TDD说你只编写了足够的代码来传递刚才写的测试。 我所指的确切地说,如果一个方法可以有100万个测试用例,你能做什么?! 显然没有写100万个测试用例?! 让我通过下面的例子更清楚地解释一下我的意思: internal static List GetPrimeFactors(ulong number) { var result = new List(); while (number % 2 == 0) { result.Add(2); number = number / 2; } var divisor = 3; while (divisor <= number) { if (number % divisor == 0) { result.Add(divisor); number = number / divisor; } else { […]

C#:阿特金筛选的实施

我想知道是否有人在这里有一个很好的实施他们想要分享的阿特金筛选。 我正在尝试实现它,但不能完全包围它。 这是我到目前为止所拥有的。 public class Atkin : IEnumerable { private readonly List primes; private readonly ulong limit; public Atkin(ulong limit) { this.limit = limit; primes = new List(); } private void FindPrimes() { var isPrime = new bool[limit + 1]; var sqrt = Math.Sqrt(limit); for (ulong x = 1; x <= sqrt; x++) for (ulong […]

将数字分解为2个主要辅因子

电报认证的要求之一是将给定数量分解为2个主要因子。 特别是P*Q = N, where N < 2^63 我们怎样才能找到较小的素数因子,使得P < square_root(N) 我的建议: 1)预先计算从3到2^31.5素数,然后测试N mod P = 0 2)找到一个算法来测试质数(但我们仍然需要测试N mod P =0 ) 是否有适合这种情况的素数算法?

C#中的主要因素

我想在C#2005中创建一个程序来计算给定输入的素因子。 我想使用基本和最简单的东西,不需要为它创建方法,也不需要为数组等创建简单的模数。 是否有任何代码满足我的愿望? 这是用于查找简单因子的代码,我需要修改此代码以计算素因子 class Program { static void Main(string[] args) { int a, b; Console.WriteLine(“Please enter your integer: “); a = int.Parse(Console.ReadLine()); for (b = 1; b <= a; b++) { if (a % b == 0) { Console.WriteLine(b + " is a factor of " + a); } } Console.ReadLine(); } }

素数c#

我是C#的新手。 我想编写类似的东西,如果用户将在文本框中输入任何整数,则在列表框中显示素数。 (这意味着,如果他们写10,它将显示0-10的素数,或0-20的20,等)。 在编程之前,我应该首先考虑什么? 我知道互联网上有很多例子,但首先我想知道我需要什么? 谢谢你的提示;-) ===谢谢你们。 所以你建议最好先在Console应用程序中做到这一点? 我使用控制台应用程序做了一个非常简单的“For Loop”示例,但是当我尝试在Windows窗体应用程序中执行它时,我不确定如何实现它。 我担心如果我继续在控制台中做示例,那么我将很难在Windows Form Apps中执行此操作。 你怎么看? ======再次问好, 我的代码需要一些反馈: Console.WriteLine(“Please enter your integer: “); long yourInteger; yourInteger = Int32.Parse(Console.ReadLine()); //displaying the first prime number and comparing it to the given integer for (long i = 2; i <= yourInteger; i = i + 1) { //Controls i if […]

C#:如何制作阿特金增量筛选

我不知道这是否可能,但我只想问。 我的数学和算法技能在这里让我失望:P 问题是我现在有这个类产生的素数达到一定限度: public class Atkin : IEnumerable { private readonly List primes; private readonly ulong limit; public Atkin(ulong limit) { this.limit = limit; primes = new List(); } private void FindPrimes() { var isPrime = new bool[limit + 1]; var sqrt = Math.Sqrt(limit); for (ulong x = 1; x <= sqrt; x++) for (ulong […]