辺の長さが整数で、体積がnの直方体を考える。
縦、横、高さのいずれも長さが1以外の直方体を作ることができる整数nが
1≦n≦300の範囲にいくつあるかを求めよ。
いわれてみれば確かに,「三次元の合成数」といえなくもないが。
要するに,約数が 3 個以上あるのが該当する整数だ。
factorize = function(n) {
f = NULL
repeat {
prime = TRUE
if (n == 1) return(f)
for (i in 2:max(sqrt(n), 2)) {
if (n %% i == 0) {
f = c(f, i)
n = n %/% i
prime = FALSE
break
}
}
if (prime) {
return(c(f, n))
}
}
}
count = 0
for (i in 2:300) {
k = factorize(i)
if (length(k) >= 3) {
cat(i, ": ", k, "\n")
count = count+1
}
}
cat("Ans. =", count)
> cat("Ans. =", count)
Ans. = 143
解禁日: 2015/03/16 10:00