以下の内容はhttps://rion778.hatenablog.com/entry/20100421/1271841876より取得しました。


Problem 125

回文数 595 は連続する平方数の和で表すことができるという面白い性質を持つ: 6^2+7^2+8^2+9^2+10^2+11^2+12^2
1000 未満で連続する平方数の和で表せる回文数はちょうど 11 あり、その合計は 4164 である。正の整数の平方のみをこの問題では扱うため、1=0^2+1^2 は含めないことに注意せよ。
回文数でありかつ連続する平方数の和で表せる、10^8 未満のすべての数の合計を求めよ。

brute force以外の何物でもないけど22秒で止まったのでいいや。回文数の判定がちょっと汚い気がする。もっと綺麗にやる方法ないだろうか。

is.palindome <- function(n){
  sum(!(unlist(strsplit(as.character(n), "")) == rev(unlist(strsplit(as.character(n),""))))) <= 1
}

limit <- 1e8
i <- 1
init <- 1
ans <- numeric(0)
count <- 0
repeat{
  tmp <- init^2
  if(tmp > limit) break
  i <- init
  repeat{
    i <- i + 1
    tmp <- tmp + i^2
    if(tmp > limit) break
    if(is.palindome(tmp)){
      count <- count + 1
      ans[count] <- tmp
    }
  }
  init <- init + 1
}
sum(unique(ans))



以上の内容はhttps://rion778.hatenablog.com/entry/20100421/1271841876より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14