//求因子个数 int Facnt(int n) { int res = 1; for(int i=2;i*i<=n;i++) { if(n%i == 0) { int cnt = 0; do { n /= i; cnt++; }while(n%i==0); res *= (cnt+1); } } if(n > 1) res = 2*res; return res; } //求因子和 int Facsum(int n) { int res = 1; for(int i=2;i*i<=n;i++) { if(n%i==0) { int cnt = 1; do { n /= i; cnt *= i; }while(n%i==0); res = res*(cnt*i-1)/(i-1); } } if(n > 1) res *= (n+1); return res; }
时间: 2024-12-17 09:44:33