- プログラミングのお題スレ Part7 [転載禁止]©2ch.net
898 :デフォルトの名無しさん[sage]:2015/09/26(土) 05:41:15.64 ID:VPLzo2d+ - >>857 Squeak Smalltalk
| len e x delta digits lastPos | len := 10. e := 2 asScaledDecimal. x := 1. lastPos := 2. [ | ans | [e := e + (delta := 1 / (x := x + 1) factorial). delta log negated > len] whileFalse. digits := (e asScaledDecimal: delta log asInteger negated) asString upTo: $s. lastPos + 1 to: digits size - len + 1 do: [:pos | ((digits at: (lastPos := pos)) ~= $0) ifTrue: [ ans := (digits copyFrom: pos to: pos + len - 1) asInteger. ((Integer primesUpTo: ans sqrt + 1) noneSatisfy: [:p | ans isDivisibleBy: p]) ifTrue: [^ans] ] ] ] repeat "=> 7427466391 "
|