Pagini recente » Cod sursa (job #405279) | Cod sursa (job #3156757) | Cod sursa (job #1671566) | Cod sursa (job #2728746) | Cod sursa (job #548801)
Cod sursa(job #548801)
# include <fstream>
# include <bitset>
# define mod 9973
using namespace std;
ifstream f ("ssnd.in");
ofstream g ("ssnd.out");
long long int n;
int a[1000000],q,w,sd,pd,k,i,p,t,j,m=1000005;
bitset <1000010> v;
void ciur ()
{
long long int i,j;
for (i=2;i<=m;i+=2)
v[i]=1;
k++;
a[k]=2;
for (i=3;i<=m/2;i=i+2)
if (v[i]==0)
{
k++;
a[k]=i;
for (j=i*i;j<=m;j=j+2*i)
v[j]=1;
}
}
inline int putere (int a,int b)
{
if (b==1)
return a%mod;
else
if (b%2==0)
return (int) (putere (a,b/2)*putere (a,b/2))%mod;
else
return a*putere (a,b-1)%mod;
}
int main ()
{
ciur ();
f>>t;
for (;t>=1;t--)
{
f>>n;
sd=1;
pd=1;
for (j=1;j<=k && a[j]*a[j]<=n;j++)
{
i=a[j];
p=0;
if (n%i==0)
{ while (n%i==0)
{
n=n/i;
p++;
}
sd=sd*(p+1);
q=(putere (i%mod,p+1)%mod)-1;
w=(putere ((i-1)%mod,mod-2))%mod;
pd=(pd*((q*w)%mod))%mod;
}
}
if (n!=1)
{
p=1;
i=n;
sd=sd*(p+1);
q=(putere (i%mod,p+1)%mod)-1;
w=(putere ((i-1)%mod,mod-2))%mod;
pd=(pd*((q*w)%mod))%mod;
}
g<<sd<<" "<<pd<<"\n";
}
return 0;
}