問題(和訳)

https://goo.gl/ZQ1j9c Problem 58 - PukiWiki

回答

awk 'BEGIN{print 1;for(i=1;;i++){a=(2*i+1)^2;printf "%d\n%d\n%d\n%d\n",a,a-2*i,a-4*i,a-6*i}}' | factor | awk 'NF==2{a++}NR>1&&NR%4=
=1{p=100*a/NR;if(p<10){print "l="int(NR/4)*2+1,p"%";exit}}'

l=26241 9.99981%

real   0m0.098s
user   0m0.120s
sys    0m0.000s

解説

頂点になる値を生成し、素数判定し、割合を計算して 10% 未満になったら終了

頂点になる値の特徴

その他

# n週目毎に途中経過を出力させる
awk 'BEGIN{print 1;for(i=1;;i++){a=(2*i+1)^2;printf "%d\n%d\n%d\n%d\n",a,a-2*i,a-4*i,a-6*i}}' | factor | awk 'NF==2{a++}NR>1&&NR%4==1{p=100*a/NR;print "NR="NR,"a="a,"l="int(NR/4)*2+1,p"%";if(p<10)exit}'

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-24 (日) 07:44:02