【python吉比特】求素数?
题目:输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外,只能被1和自己整除的自然数称为素数
输入描述:
两个整数M,N
输出描述:
区间内素数的个数
示例1
输入
2 10
输出
4
code:
def isPrime2(k):
if k <= 2:
return True
for i in range(len(prime_array)):
try:
if k > prime_array[i] and k % prime_array[i] == 0:
return False
except:
print("error")
prime_array.append(k)
return True
def getPrimes2(n):
primes = []
for i in range(2, n + 1):
if isPrime2(i):
primes.append(i)
return primes
if __name__ == "__main__":
M = 3#int(input())
N = 10#int(input())
prime_array = [2]
prime_arrayM = getPrimes2(M)
prime_arrayN = getPrimes2(N)
if isPrime2(M):
print(abs(len(prime_arrayM) - len(prime_arrayN)) + 1)
else:
print(abs(len(prime_arrayM) - len(prime_arrayN)))
