求一个数的因子数以及因子和
转自:杨美人!
(a/b) mod m=a mod (bm)/b
//求因子个数
int count(int n){
int s=1;
for(int i=2;i*i<=n;i++){
if(n%i==0){
int a=0;
while(n%i==0){
n/=i;
a++;
}
s=s*(a+1);
}
}
if(n>1) s=s*2;
return s;
}
//求因子和
int sum(int n){
int s=1;
for(int i=2;i*i<=n;i++){
if(n%i==0){
int a=1;
while(n%i==0){
n/=i;
a*=i;
}
s=s*(a*i-1)/(i-1);
}
}
if(n>1) s=s*(1+n);
return s;
}