【发布时间】:2017-11-12 13:12:40
【问题描述】:
和x=12一样,可以除以y=2,2次(12/2=6,6/2=3)和12可以除以3,1次和12可以除以5, 0次。 这里 x 将是一个复合数,而 y 是一个素数。 java有内置函数吗?
是否有任何 O(1) 解决方案?
【问题讨论】:
-
没有内置函数,但你可以像这样实现。这个想法不需要更多优化,因为它似乎可以在
O(log n)中使用简单的while循环。 -
@SanketMakani 有任何 O(1) 解决方案吗?
-
不,没有。这个算法应该是什么样子的?
-
不,没有 O(1) 解决方案,但是当 n 无论如何不能超过 30 时,O(n) 几乎不是问题,通常在 1-3 左右。