B1013(通过)

这种方法是采用B1017的那个求素数的算法,并且送一个比较大的数值当作上线(20000),也可以进一步压缩,但是这个数已经够用了,就没有再试了。

python方便是方便,但是真的慢

def isPrime(n, result):
    flag = [1] * (n+2)
    p = 2
    while( p <= n):
        result.append(p)
        for i in range(2*p, n+1, p):
            flag[i] = 0
        while 1:
            p += 1
            if (flag[p] == 1):
                break

str = input().split()
m = int(str[0])
n = int(str[1])

prime = []

isPrime(200000, prime)
result = prime[m-1: n]
if (len(result) == 1):
    print(result[0])
else:
    for i in range(len(result) - 1):
        if (i + 1) % 10 == 0:
            print(result[i])
        else:
            print(result[i], end = " ")
    if (i+2) % 10 == 0:
        print(result[i+1])
    else:
        print(result[i+1], end = "")
posted @ 2019-12-22 10:19  王清河  阅读(233)  评论(0编辑  收藏  举报