我已经读了一个竞争性的编程书一个月了。这本书是由我们国家(孟加拉国)的世界决赛入围者之一撰写的。需要指出的是,这本书是用我们的母语(孟加拉语)编写的,在全球范围内并不那么受欢迎。由于孟加拉语中包含内容,因此无法在此处引用。这就是为什么我首先感到抱歉的原因。
在那本书的数论一章中,给出了许多测试原始性的算法。他表现出的最佳状态是O(nloglogn)中的“ Eratosthenes筛”。但是他写了一行。我正在翻译。 “在O(logn)中,有一种更有效的测试素数的方法。请自己考虑。如果您撤消该操作,只需在Google上搜索它!”
我已经用谷歌搜索了,但是没有发现任何令人满意的结果。
真的可以测试O(logn)中数字的素数吗? 如果有可能,那么可以得出结论??
答案 0 :(得分:4)
该语句不正确。对于数字N,数字位数为O(log N)
,因此该语句表示存在一种数字位数 linear 的算法。最知名的结果是多项式的位数。 (Agrawal–Kayal–Saxena素数测试,Õ(logN 12 )。这是12的幂,而不是1的幂。
仍然,Õ(logN 12 )⊂O(N)