import math import numpy as np def make_prime_list(lower:int, upper:int) -> list: # バリデーション if lower < 0: raise ValueError("lowerは0以上でなければいけません。(lower:{})".format(lower)) elif upper <= lower: raise ValueError("upperはlowerより大きい数でなければいけません。\ (lower:{}, upper:{})".format(lower,upper)) isPrime = [True]*upper primeList = [] # 区間内の数字が0,1のみならここで終了 if upper <= 2: return primeList # 区間内の数字に2以上のものがあるとき isPrime[0] = False isPrime[1] = False # エラトステネスの篩の処理 for n in range(2,int(math.sqrt(upper))+2): if isPrime[n]: res=2*n while res