Bash
ProjectEuler
数学

Project Euler Q37 【切り詰め可能素数】

More than 1 year has passed since last update.

Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。

問題

$3797$は面白い性質を持っている. まずそれ自身が素数であり, 左から右に桁を除いたときに全て素数になっている $(3797, 797, 97, 7).$ 同様に右から左に桁を除いたときも全て素数である $(3797, 379, 37, 3).$

右から切り詰めても左から切り詰めても素数になるような素数は$11$個しかない. 総和を求めよ.

注: $2, 3, 5, 7$を切り詰め可能な素数とは考えない.

解答

seq 11 999999 |
grep -v "^[0|1|4|6|8|9]" |
grep -v "[0|1|2|4-6|8|9]$" |
awk '{for(i=1;i<=length;i++){printf substr($1,i,length+1-i)" "substr($1,1,length-i)" "};print "1"}' |
factor |
awk 'NF==1{print "@"} NF==2{print $2,"1"} 3<=NF{print $1*1,"0"}' |
tr '\n' ' ' |
tr '@' '\n' |
grep -v " 0" |
awk '{s+=$1}END{print s}'
748317

答え合わせ

こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/037.html