Problem 44 もっかい

ベクトルで計算したら早かった.5秒くらいかかるけどさっきより20倍くらいマシだからもういいや.何も考えずforを使うのを止めないといけない.

pent <- function(n) n*(3*n-1)/2
is.pentagonal <- function(p){
  2*p == ceiling(sqrt(2/3*p))*(3*ceiling(sqrt(2/3*p))-1)
}

j <- 2
ans <- 0

while(1){
  b.p <- pent(rep(j, j-1))
  s.p <- pent(1:(j-1))
  pTF <- is.pentagonal(b.p - s.p) & is.pentagonal(b.p + s.p)
  if(sum(pTF)>=1) break
  j <- j+1
}

(b.p - s.p)[pTF]