Cod sursa(job #2954184)
| Utilizator | Data | 13 decembrie 2022 15:14:04 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 30 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include<fstream>
using namespace std;
ifstream F("ssnd.in");
ofstream G("ssnd.out");
long long i,j,k,p[99999],t,o=9973,u,l,n,w,z;
bool r[1000001];
int main()
{
for(p[k++]=2,i=3;i<1e3;i+=2)
if(!r[i])
for(p[k++]=i,j=i*i;j<1e6;r[j]=1,j+=2*i);
for(F>>t;t--;G<<u<<' '<<z%o<<'\n') {
for(F>>n,u=z=1,i=0;p[i]*p[i]<=n;++i)
if(n%p[i]==0) {
for(l=1,w=p[i];n%p[i]==0;n/=p[i],w*=p[i],++l);
u*=l,z*=((w-1)/(p[i]-1))%o;
}
if(n>1)
u*=2,z*=(n+1)%o;
}
return 0;
}
