Pagini recente » Cod sursa (job #1035310) | Cod sursa (job #2039150) | Cod sursa (job #1909009) | Cod sursa (job #1854864) | Cod sursa (job #602120)
Cod sursa(job #602120)
#include <cstdio>
#include <fstream>
#include <bitset>
using namespace std;
#define m 9973
#define N 1000005
int p[N];
bitset<N> c;
inline int power (int a,int p){
int r=1;
a%=m;
for(;p;p>>=1){
if(p&1){
r*=a;
r%=m;
}
a*=a;
a%=m;
}
return r;}
int main ()
{
int n=0,t,nr,sum,pp,p1,p2;
long long x;
for(int i=2;i+1<N;++i)
if(c[i]==0){
p[++n]=i;
for(int j=i+i;j+1<N;j+=i)
p[j]=1;
}
ifstream f ("ssnd.in");
freopen ("ssnd.out","w",stdout);
for(f>>t;t;--t){
f>>x;
nr=1;
sum=1;
for(int i=1;i<=n&&1LL*p[i]*p[i]<=x;++i){
if(x%p[i])
continue;
pp=0;
while(x%p[i]==0){
x/=p[i];
++pp;
}
nr*=(pp+1);
p1=(power(p[i],pp+1)-1)%m;
p2=power(p[i]-1,m-2)%m;
sum=(((sum*p1)%m)*p2)%m;
}
if(x>1){
nr*=2;
sum=(1LL*sum*(x+1)%m);
}
printf("%d %d\n",nr,sum);
}
return 0;}