python3で、108バイトです。code golfトップの45バイトにはかないませんが、善戦したと思います。
エラトステネスの篩を使っています。
python3 prime6.py
として実行してください。
rangeの第2引数未満最大の素数まで出力します。
prime6.py
def s(n):
for p in m:
if n%p==0:return 0
return 1
m=[]
for i in range(2,100):
if s(i):m+=[i];print(i)
煩悩の108バイトプログラム 公太郎
AI
ついでに、Microsoft bing chatのcopilotが出してきた「エラトステネスの篩で、素数を出力する世界最小のコード」を、更に人力で短縮したものを載せておきます。
prime9.py
print([x for x in range(2,101) if all(x%y for y in range(2,x))])
これは64バイトです。
元のコードは、
prime10.py
print([x for x in range(2, 1000) if all(x % y != 0 for y in range(2, int(x**0.5) + 1))])
のような感じで、88bytesでした。
pythonインタプリタは、値を与えるとプリントしてくれるので、以下のような記述でも良いのなら。
[x for x in range(2,100) if all(x%y for y in range(2,x))]
これは、58bytesです。
code golfで、具体的な数字として、1000000までの素数を出力せよというのがありました。
[x for x in range(2,10**6)if all(x%y for y in range(2,x))]
これは、59バイトです。
Code Golf
すごい人がいるなあ。