library(schoolmath)
N<-6
p.f<-prime.factor(N)
p.f
N-cumprod(p.f)
a<-table(p.f)
as.numeric(row.names(a))
ans<-1
for(i in 1:length(a)){
tmp<-sum(as.numeric(row.names(a)[i])^(0:a[i]))
ans<-ans*tmp
}
sumOfYakusuu<-function(N){
if(N==1) return(1)
p.f<-prime.factor(N)
a<-table(p.f)
ans<-1
for(i in 1:length(a)){
tmp<-sum(as.numeric(row.names(a)[i])^(0:a[i]))
ans<-ans*tmp
}
ans
}
for(i in 1:12){
print(paste("i=",i))
print(paste("sumOfYakusuu=",sumOfYakusuu(i)))
}
- a^0+a^1+...+a^kは次のようにしてもよいかもしれません。
- S(k)=a^0+a^1+...+a^k
- S(k+1)=a^0+a^1+...+a^k+a^(k+1)
- S(k)は漸化式で、S(k+1)=S(k)*a+1
- ここから
- S(k+1)+x=S(k)*a+1+x=a*(S(k)+xなるxは
- x=1/(a-1)ですから
- S(k)=a^k*(S(0)+1/(a-1))なので
- S(k)=(a^(k+1)-1)/(a-1)です。
- こんな面倒なことをしなくても
- a^n-1=(a-1)*(a^(n-1)+a^(n-2)+...+a^1+a^0)からも導けます