LoginSignup
2
2

More than 5 years have passed since last update.

Project Euler Q50 【連続する素数の和】

Posted at

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

問題

素数$41$は$6$つの連続する素数の和として表せる:
$41 = 2 + 3 + 5 + 7 + 11 + 13.$

$100$未満の素数を連続する素数の和で表したときにこれが最長になる.

同様に, 連続する素数の和で$1000$未満の素数を表したときに最長になるのは$953$で$21$項を持つ.

$100$万未満の素数を連続する素数の和で表したときに最長になるのはどの素数か?

解答

seq 1000000 |
factor |
awk 'NF==2{printf $2" "}' |
awk '{for(i=1;i<=NF-1;i++){s=0;c=0;for(j=i+1;j<=NF;j++){if(1000000<=s+$j){break}else{s+=$j;c+=1}};print s,c}}' |
awk '21<$2' |
sort -k2,2nr |
awk '$0=$1' |
factor |
awk 'NF==2{print $2}' |
head -1
997651

まだ無駄な処理をしてる感は否めない。。

答え合わせ

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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2