【python公司校招题】

【python吉比特】求素数?

2019-08-11  本文已影响0人  阿牛02

题目:输入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)))

上一篇 下一篇

猜你喜欢

热点阅读