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