#41547: 大神們!救救我!(你一定很感興趣!)不信你看一下圖


1120904@stu.twjh.tyc.edu.tw (80904林承鋆)

學校 : 臺北市私立延平高級中學
編號 : 248788
來源 : [101.12.152.127]
最後登入時間 :
2024-09-22 16:57:46
d709. 判断质数(一) -- 判断质数系列 | From: [163.30.29.78] | 發表日期 : 2024-08-05 15:13

下面是我的程式:

def sieve_of_eratosthenes(limit):
    is_prime = [True] * (limit + 1)
    is_prime[0] = is_prime[1] = False

    p = 2
    while p * p <= limit:
        if is_prime[p]:
            for multiple in range(p * p, limit + 1, p):
                is_prime[multiple] = False
        p += 1

    primes = [p for p, prime in enumerate(is_prime) if prime]
    return primes

limit = 1000000
primes = sieve_of_eratosthenes(limit)
while True:
    a = int(input())
    if a!=0:
        if a in primes:
            print('0')
        else:
            print('1')
    else:
        break
   救我!大神!

 
#41586: Re: 大神們!救救我!(你一定很感興趣!)不信你看一下圖


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
d709. 判断质数(一) -- 判断质数系列 | From: [111.71.216.5] | 發表日期 : 2024-08-08 15:57

1.

    primes = [p for p, prime in enumerate(is_prime) if prime]
    return primes

...


        if a in primes:

2.

while True:
    a = int(input())


1. primes是list,a in primes比較慢,可以改用set

2.  可以改成

for i in sys.stdin:
a = int(i)
 
ZeroJudge Forum