#41297: python


suyueh (suyueh)

學校 : 不指定學校
編號 : 272111
來源 : [101.12.160.127]
最後登入時間 :
2024-11-21 22:51:47
a121. 質數又來囉 | From: [125.229.229.84] | 發表日期 : 2024-07-16 15:42

def prime(n):
  if n == 1:
      return 0
  else:
      if n % 2 == 0 and n != 2:
        return 0
      else:
        if n % 3 == 0 and n != 3:
                return 0
        else:
          for i in range(5, int(n**0.5)+1, 6):
            if n % i == 0: #5 11 17
              return 0
            if n % (i+2) == 0: #7 13 19
              return 0            
  return 1        
while True:
  try:
    a, b = map(int, input().split())        
    if b - a > 1000:
      print(0)
      break        
    count = 0
    for i in range(a, b+1):
      count += prime(i)                
    print(count)        
  except(EOFError):
    break
 
#41408: Re: python


mountainwu14@gmail.com (吳小四)

學校 : 不指定學校
編號 : 187101
來源 : [123.193.136.130]
最後登入時間 :
2024-07-25 20:25:33
a121. 質數又來囉 | From: [123.193.136.130] | 發表日期 : 2024-07-24 17:59

我這樣子寫被killed

def isPrime(n):
    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0 or n % 3 == 0:
        return False
    i = 5
    while i * i <= n:
        if n % i == 0 or n % (i + 2) == 0:
            return False
        i += 6
    return True

while True:
    try:
        a,b=map(int,input().split())
        if b-a>1000:
            print(0)
            break
# 計算範圍內的質數數量
        prime_count = 0
        for num in range(a, b + 1):
            if isPrime(num):
                prime_count += 1
        # 輸出質數數量
        print(prime_count)
    except EOFError:
        break

 
ZeroJudge Forum