Problem 41

Problem 41 - Project Euler
辞書順に並べて判定かけようと思ったけどなんかうまくいかなかった。

is.prime <- function(n){
  if(n == 1) return(FALSE)
  if(n < 4) return(TRUE)
  if(n%%2==0) return(FALSE)
  if(n < 9) return(TRUE)
  if(n%%3==0) return(FALSE)
  r <- floor(sqrt(n))
  f <- 5
  while(f <= r){
    if(n%%f == 0) return(FALSE)
    if(n%%(f+2) == 0) return(FALSE)
    f <- f + 6
  }
  return(TRUE)
}

toDigits <- function(n){
  rev(floor(n/(10^(0:floor(log(n, 10)))))%%10)
}
i <- 7654321
while(!(is.prime(i) && setequal(toDigits(i),1:7))){
  i <- i-1
}

答えが7桁ってのはなんとなく予想ついたのでそれを利用してしまっている。
まあ10msくらいで終わったからこれでいいか。