Pagini recente » Istoria paginii runda/brasov_city_challenge | Cod sursa (job #1293427) | Istoria paginii runda/simulare_oji_10_1 | Cod sursa (job #1534465) | Cod sursa (job #484003)
Cod sursa(job #484003)
#include <fstream>
#include <bitset>
using namespace std;
const int L=1000500,mod=9973;
bitset <L> m;
int p[100000];
int main()
{ifstream q("ssnd.in");
ofstream w("ssnd.out");
int T,i,j,k,q,r1;
long long x,r2,s,t;
p[1]=2;
q=1;
for(i=3;i<L;i+=2)
if(!m[i])
{p[++q]=i;
for(j=3*i;j<L;j+=i<<1)
m[j]=1;}
q>>T;
while (T--)
{q>>x;
j=r1=r2=1;
while((long long)p[j]*p[j]<=x)
{s=t=1;
k=0;
while(x%p[j]==0)
{x/=p[j];
k++;
s=(s*p[j])%mod;
t=(t+s)%mod;}
r1*=k+1; r2=(r2*t)%mod;
j++;}
if(x>1)
{r1<<=1;
r2=(r2*(x+1))%mod;}
w<<r1<<" "<<r2<<"\n";}
return 0;}