Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一种方法是计算它们的gcd并检查它是否为 1。
有更快的方法吗?
欧几里得算法(计算gcd)非常快。当从 中均匀随机抽取两个数时[1, n],计算它们的平均步数gcd为O(log n)。每一步所需的平均计算时间是位数的二次方。
gcd
[1, n]
O(log n)
有一些替代方案的性能要好一些(即,每个步骤的位数都是次二次的),但它们只对非常大的整数有效。例如,参见关于 Schönhage 算法和次二次整数 gcd 计算。
如果您在除法/余数比班次贵得多的机器上运行,请考虑二进制 GCD。