Pagini recente » Cod sursa (job #2898452) | Cod sursa (job #1914961) | Cod sursa (job #3262744) | Cod sursa (job #2234608) | Cod sursa (job #2539159)
#include <fstream>
#include <vector>
#define Nmax 100010
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
vector <int> prime;
long long int v[Nmax],q,nrdiv,S;
void ciur()
{
prime.push_back(2);
for (long long int i=3; i<=Nmax; i+=2)
{
if (v[i]==0)
{
prime.push_back(i);
for (long long int j=2*i; j<=Nmax; j+=i)
{
v[j]=1;
}
}
}
}
void rezolvare (long long int start)
{
for (auto x:prime)
{
if (x*x<=start)
{
if (start%x==0)
{
long long int nr=0,p=1,s=1;
while (start%x==0)
{
nr++;
p=(p*x)%mod;
start/=x;
s=(s+p)%mod;
}
S=(S*s)%mod;
nrdiv*=(nr+1);
}
}
else
break;
}
if (start>1)
{
nrdiv*=2;
start%=mod;
S=(S*(start+1))%mod;
}
fout<<nrdiv<<" "<<S<<"\n";
}
int main()
{
ciur();
long long int n,i,j,a,b;
fin>>q;
for (i=1; i<=q; i++)
{
fin>>n;
nrdiv=1;
S=1;
rezolvare(n);
}
return 0;
}