int fac[10000]; int fre[10000]; const int mode=9901; int work_quality_factor(int n) { int res,temp,i; res=0; temp=n; for(i=2;i*i<=temp;i++) if(temp%i==0) { fac[res]=i; fre[res]=0; while(temp%i==0) { temp=temp/i; fre[res]++; } res++; } if(temp>1) { fac[res]=temp; fre[res++]=1; } return res; } //res是质因数个数减一,fac[]是质因数数组,fre[i]是对应fac[i]的出现次数