python-leetcode-求区间[M,N]内的所有素数的个数

题目描述

输入M、N,1 < M < N <
1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外,只能被1和自己整除的自然数称为素数 输入描述: 两个整数M,N
输出描述: 区间内素数的个数

解法一:常规解法

def prime(m, n):
    prime_list = []
    for i in range(m, n):
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            prime_list.append(i)
    return len(prime_list)

解法二:使用python内置函数filter过滤

def all_prime_number(m, n):
    filter_list = filter(lambda x: not [x % i for i in range(2, x) if x % i == 0], range(m, n))
    return len(list(prime_list))

你可能感兴趣的:(python,LeetCode,经典算法)