Problem 55

Problem 55 - Project Euler
40秒くらい.gmp使うと簡単に文字列にできるし簡単に戻せるから楽.しかしそれにしても頼りすぎではないか.

library(gmp)

rev.bigz <- function(n){
  while(as.bigz(n)%%10==0) n <- n/10
  as.bigz(paste(rev(strsplit(as.character(n),"")[[1]]),collapse=""))
}
is.palindome <- function(n){
  as.bigz(n) == rev.bigz(n)
}

limit <- 9999
lychel.count <- 0
for(i in 1:limit){
  can.lyc <- as.bigz(i) + rev.bigz(i)
  count <- 1
  while(count < 50){
    if(is.palindome(can.lyc)) break
    can.lyc <- can.lyc + rev.bigz(can.lyc)
    count <- count + 1
  }
  if(count == 50) lychel.count <- lychel.count + 1
}
lychel.count