Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python挑战:给定范围内素数的不同组合_Python_Primes - Fatal编程技术网

Python挑战:给定范围内素数的不同组合

Python挑战:给定范围内素数的不同组合,python,primes,Python,Primes,考虑这一挑战: 给定两个数字A和B,您可以用多少种方式选择B不同的素数,其中每个素数应小于或等于A( 应该是 for i in range(2, A+1): P>因为你必须考虑所有的素数 P > Ionut关于包容性问题是正确的! 除此之外,您还应将nPk定义更改为: def nPk(n,k): return int( factorial(n)/(factorial(n- k) * factorial(k))) alfasin是正确的;问题是选择素数的顺序无关紧要。因此,您希望使用

考虑这一挑战:

给定两个数字
A
B
,您可以用多少种方式选择
B
不同的素数,其中每个素数应小于或等于
A

应该是

for i in range(2, A+1):

<> P>因为你必须考虑所有的素数<强> P > Ionut关于包容性问题是正确的! 除此之外,您还应将nPk定义更改为:

def nPk(n,k):
    return int( factorial(n)/(factorial(n- k) * factorial(k)))

alfasin是正确的;问题是选择素数的顺序无关紧要。因此,您希望使用组合而不是排列。

顺便说一句,如果您在搜索
is_prime
时使用已知的
素数,您可以大大加快素数的搜索速度。参见。@9000您的意思是?这是对代码的一个调整您链接到,并且速度快了1.3倍,需要O(sqrt(n/log n))而不是O(n)额外的空间来生成n个素数。编辑的函数在某些情况下失败,例如对于n=334和k=25,我不明白为什么,请您再看一看
for i in range(2, A+1):
def nPk(n,k):
    return int( factorial(n)/(factorial(n- k) * factorial(k)))