计算L和R之间的数字,其中至少有一个主要因子在1到50之间

时间:2016-11-05 07:21:31

标签: algorithm math primes

给定L和R非常大的数字(10 ^ 18),我如何找到L和R之间的数字计数,使得数字至少有一个从1到N的素数因子。

注意:N可以是MAX 50

1 个答案:

答案 0 :(得分:1)

我将只绘制一个方法,而不是详细说明。

如果R-L非常小,最好逐一尝试。

否则使用inclusion exclusion principle:出于解释原因,我只考虑素数2,3和5.确定有多少数可以除以2,3,5(即其中一个素数),6, 10,15(即两个素数)和30(即所有三个素数)。对于除数k,这约为(R-L)/k,考虑到边界条件,我们可以得到确切的计数。调用相应的计数c(k)。

现在,至少有一个素数可被整除的数字的总数是:

c(2)+c(3)+c(5)-c(6)-c(10)-c(15)+c(30)