裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

スミス数

2017年06月12日 | ブログラミング

スミス数
 合成数で、その素因数の数字の和がもとの数の数字の和に等しい数

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)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村