Project Euler Problem 4

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.

Find the largest palindrome made from the product of two 3-digit numbers.

結構悩んだあげくに力技で解く.普通に繰り返しを使うとものすごく計算時間がかかるので,Rらしく行列計算にしてしまい,あとは同じ要素を抜き出して並び替えという方法.最大値以外のどうでもいいものまで全部計算してしまうので,全然効率的じゃないなぁ.

x <- numeric()
for (i in 1:9){
  for (j in 0:9){
    for (k in 0:9){
    a <- 100000*i + 10000*j + 1000*k + 100*k + 10*j +i
    x <- c(x,a)
    }
  }
}
y <- numeric()
for (i in 1:9){
  for (j in 0:9){
    for (k in 0:9){
    a <- 10000*i + 1000*j + 100*k + 10*j +i
    y <- c(y,a)
    }
  }
}
x <- c(x,y)
x <- rev(sort(x))

i <- matrix(100:999, ncol=1)
j <- matrix(100:999, nrow=1)
z <- as.vector(i %*% j)

z1 <- sort(intersect(z,x))
z1[length(z1)]