sumim #4653(2007/12/06 17:44 GMT) [ Smalltalk ] Rating0/0=0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| primesOfSize goedel | primesOfSize := [:n | | m primes | m := 0. [(primes := Integer primesUpTo: (10 raisedTo: (m := m + 1))) size >= n] whileFalse. primes first: n]. goedel := [:num | | digits size | digits := (num asString as: Array) collect: [:char | char asString asInteger]. size := digits size. primes := primesOfSize value: size. (1 to: size) inject: 1 into: [:goe :idx | goe * ((primes at: idx) raisedTo: (digits at: idx))]]. goedel value: 9. "=> 512 " goedel value: 81. "=> 768 " goedel value: 230. "=> 108 "
Rating0/0=0.00-0+
[ reply ]
sumim
#4653()
[
Smalltalk
]
Rating0/0=0.00
指定した数未満の素数列を生成する、組み込みの Integer class>>#primesUpTo: を流用して富豪的に。
| primesOfSize goedel | primesOfSize := [:n | | m primes | m := 0. [(primes := Integer primesUpTo: (10 raisedTo: (m := m + 1))) size >= n] whileFalse. primes first: n]. goedel := [:num | | digits size | digits := (num asString as: Array) collect: [:char | char asString asInteger]. size := digits size. primes := primesOfSize value: size. (1 to: size) inject: 1 into: [:goe :idx | goe * ((primes at: idx) raisedTo: (digits at: idx))]]. goedel value: 9. "=> 512 " goedel value: 81. "=> 768 " goedel value: 230. "=> 108 "Rating0/0=0.00-0+
[ reply ]