我需要检查一系列数字,包括它们,我得到了这个代码,但是我得到了一个错误,它必须是递归的。
def esPrimo(a):
if (a <2):
return False;
for i in range(2,a):
if a%i == 0:
return False;
return True;
def calcularCantidadPrimosEnIntervalo(a, b):
if(a>b):
return 0;
else:
if(esPrimo(a)):
return calcularCantidadPrimosEnIntervalo(a+1, b) + 1;
else:
calcularCantidadPrimosEnIntervalo(a+1, b);
print("Numeros Primos: " + calcularCantidadPrimosEnIntervalo(1,7));
我得到了这个例外:
TypeError:+不支持的操作数类型:'NoneType'和'int'
答案 0 :(得分:0)
您错过了return
语句。因此,有时您的calcularCantidadPrimosEnIntervalo()
函数会返回None
而不是整数。
这一行:
else:
calcularCantidadPrimosEnIntervalo(a + 1, b);
......应该是:
else:
return calcularCantidadPrimosEnIntervalo(a + 1, b);