library(gmp)
func = function(n) {
a = factorize(n) # 素因数分解
u = unique(a) # ユニークな素因数
b = numeric(length(u)) # 同じ素因数の個数
for (i in 1:length(a)) {
suf = which(as.character(a[i]) == u)
b[suf] = b[suf]+1
}
return(prod(b+1)) # 「各素因数の個数+1」の積
}
func(20)
func(472)
func(1073741824)
func("3572947927495273") # 大きな数は文字列で