エラトステネスの篩で素数を出力するpythonプログラムです。
chmod +x sieve.py
./sieve.py <n>
として実行してください。
sieve.py
#!/usr/bin/python3
import sys
def sieve(n):
tab=[_ for _ in range(2,n+1)][::-1]
l=[]
while (tab):
l+=[v:=tab.pop()]
tab=[_ for _ in tab if _ % v ]
return l
if __name__ == "__main__":
if (len(sys.argv)!=2):
print("Invalid argument.")
print(f"Usage: {sys.argv[0]} <number>")
exit()
else:
n=int(sys.argv[1])
primes=sieve(n)
print (f"{primes}\nNumber of primes is {len(primes)}.\n")