Pagini recente » Cod sursa (job #2511676) | Cod sursa (job #2447518) | Cod sursa (job #2788301) | Cod sursa (job #1875620) | Cod sursa (job #2721750)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bool ciur[2000003];
long long prime[1000003];
long long nr;
long long x,n;
void erat()
{
ciur[1]=1;
ciur[0]=1;
for(long long i=2; i<1000003; i++)
{
if(ciur[i]==0)
{
prime[nr++]=i;
for(long long j=i*i; j<1000003; j+=i)
{
ciur[j]=1;
}
}
}
}
int main()
{
fin>>n;
erat();
while(n--)
{
long long nrdiv=1;
long long sum=1;
fin>>x;
for(int i=0; prime[i]*prime[i]<=x && i<nr; i++)
{
int exponent=0;
if(x%prime[i]==0)
{
while(x%prime[i]==0 && x>0)
{
exponent++;
x/=prime[i];
//cout<<x<<" "<<prime[i]<<" "<<exponent<<"\n";
}
nrdiv=nrdiv*(exponent+1);
sum=sum*(pow(prime[i],exponent+1)-1)/(prime[i]-1);
//cout<<sum<<"\n";
sum%=9973;
}
}
if(x>0)
{
fout<<2*nrdiv<<" "<<(sum*(x+1))%9973<<"\n";
//cout<<"a\n";
}
else fout<<nrdiv<<" "<<sum%9973<<"\n";
}
return 0;
}