スミス数
合成数で、その素因数の数字の和がもとの数の数字の和に等しい数
f = function(n) {
library(matlab) # 素数判定関数 isprime, 素因数分解関数 factors
if (isprime(n) == 0) {
a = sum(as.integer(unlist(strsplit(as.character(n), ""))))
b = sum(sapply(factors(n), function(x) sum(as.integer(unlist(strsplit(as.character(x), ""))))))
cat(a == b, "\n")
}
}
f(9985) # 9985 ==> 9+9+8+5 = 31, 9985 = 5x1997 ==> 5+1+9+9+7 = 31
f(6036)