Pagini recente » Cod sursa (job #1946418) | Cod sursa (job #3223770) | Cod sursa (job #34921) | Cod sursa (job #2734601) | Cod sursa (job #2539313)
#include <fstream>
#include <vector>
#define Nmax 1000010
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
vector <long long int> prime;
int v[Nmax],q;
long long int 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 (int start)
{
for (int i=0;i<prime.size() && prime[i]*prime[i]<=start && start>1;i++)
{
long long int x=prime[i];
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);
}
}
if (start>1)
{
nrdiv*=2;
start%=mod;
S=(S*((start+1)%mod))%mod;
}
fout<<nrdiv<<" "<<S<<"\n";
}
int main()
{
ciur();
long long int n,i;
fin>>q;
for (int i1=1; i1<=q; i1++)
{
fin>>n;
nrdiv=1;
S=1;
rezolvare(n);
}
return 0;
}