題目:輸入M、N,1 < M < N < 1000000,求區(qū)間[M,N]內(nèi)的所有素數(shù)的個數(shù)。素數(shù)定義:除了1以外,只能被1和自己整除的自然數(shù)稱為素數(shù)
輸入描述:
兩個整數(shù)M,N
輸出描述:
區(qū)間內(nèi)素數(shù)的個數(shù)
示例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)))
