Problem 62

Problem 62 - Project Euler
全然思いつかなくて,詰んだとか思ってたけど全然そんなことはなかった.
ベクトルで計算する,大事.forは極力一重で.
最初は1時間くらい回さないと終わらないような状態だったけど,結局4秒くらいでした.

library(gmp)

toNum <- function(n){
  n <- rev(n)
  sum(n*10^(0:(length(n)-1)))
}
toDig.sort.r <- function(n){
  a <- as.numeric(sort((strsplit(as.character(n),"")[[1]])))
  toNum(rev(a))
}

cubes <- (1:10000)^3
cubes <- cubes[!cubes%%10==0]

cubes.sorted <- numeric(length(cubes))

for(i in 1:length(cubes)){
  cubes.sorted[i] <- toDig.sort.r(cubes[i])
}

for(i in cubes.sorted){
  if(sum(cubes.sorted==i) == 5) break
}