是否可以测试O(logn)中的数字是否为质数?

时间:2019-06-25 10:50:44

标签: algorithm data-structures number-theory primality-test

我已经读了一个竞争性的编程书一个月了。这本书是由我们国家(孟加拉国)的世界决赛入围者之一撰写的。需要指出的是,这本书是用我们的母语(孟加拉语)编写的,在全球范围内并不那么受欢迎。由于孟加拉语中包含内容,因此无法在此处引用。这就是为什么我首先感到抱歉的原因。

在那本书的数论一章中,给出了许多测试原始性的算法。他表现出的最佳状态是O(nloglogn)中的“ Eratosthenes筛”。但是他写了一行。我正在翻译。 “在O(logn)中,有一种更有效的测试素数的方法。请自己考虑。如果您撤消该操作,只需在Google上搜索它!”

我已经用谷歌搜索了,但是没有发现任何令人满意的结果。

真的可以测试O(logn)中数字的素数吗?  如果有可能,那么可以得出结论??

1 个答案:

答案 0 :(得分:4)

该语句不正确。对于数字N,数字位数为O(log N),因此该语句表示存在一种数字位数 linear 的算法。最知名的结果是多项式的位数。 (Agrawal–Kayal–Saxena素数测试,Õ(logN 12 )。这是12的幂,而不是1的幂。

仍然,Õ(logN 12 )⊂O(N)