Pagini recente » Istoria paginii utilizator/sbenghici_ | Cod sursa (job #2065845) | Cod sursa (job #1514461) | Cod sursa (job #2262746) | Cod sursa (job #1721848)
#include<iostream>
#include<fstream>
#include<bitset>
#define nmax 1000005
using namespace std;
long long prime[nmax];
bitset<nmax> ciur;
int nrp=1;
ifstream si("ssnd.in");
ofstream so("ssnd.out");
void erat()
{
long long i,j,k;
prime[0]=2;
for(i=3;i<=nmax;i=i+2)
{
if(ciur[i]==0)
{
prime[nrp]=i;
nrp=nrp+1;
k=i+i;
for(j=i+k;j<=nmax;j=j+k)
{
ciur[j]=1;
}
}
}
}
int main()
{
int q;
si>>q;
erat();
while(q--)
{
long long n;
si>>n;
int i,c,d=1,s=1,mod=9973;
long long p;
for(i=0;prime[i]*prime[i]<=n&&i<nrp;++i)
{
if(n%prime[i]==0)
{
c=0;
p=prime[i];
while(n%prime[i]==0)
{
++c;
p=p*prime[i];
n=n/prime[i];
}
d=(d*(c+1))%mod;
s=(s*(p-1LL)/(prime[i]-1LL))%mod;
}
}
if(n!=1)
{
d=(d*2)%mod;
s=(s*(n+1))%mod;
}
so<<d<<' '<<s<<'\n';
}
}