Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

tea63
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away