好吧,我编写了一个程序,用两种不同的方法检查素数。我还编写了一个程序来计算函数在给定数字下找到的素数的数量。我稍后也会比较这些并发现%差异。但是,我很好奇是否有一种方法可以让素数计数器代码将两个不同的素数检查器作为变量,这样我就不必为每个方法编写两个单独的计数器。我怎样才能做出这样的东西?
代码是这样的
def primsqr(x):
if x>1:
for i in range(2, int(x ** 0.5) + 1):
if x % i == 0:
break
return False
else:
return True
def primeferm(x):
if x>1:
if pow(2, (x-1), mod=x) == 1:
return True
else:
return False
def counter():
primeamount = 0
for i in range(3000001):
if primsqr(i) == True:
primeamount +=1
return primeamount
#And then an identical one for the other prime checker and the comparison blablabla
#This is also pseudocode
我是否可以创建一个通用函数来计算一个数字下的素数,而不是将最后一个写两次?也许可以将质数检查器作为参数并生成通用函数?
最佳答案
您可以传递要用作参数的函数。
def counter(prime_checker):
primeamount = 0
for i in range(3000001):
if prime_checker(i) == True:
primeamount +=1
return primeamount
counter(primsqr)
关于python - python 中函数的功能以及检查是否为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66162314/