Pagini recente » Cod sursa (job #227392) | Cod sursa (job #1709657) | Cod sursa (job #1844921) | Cod sursa (job #1565578) | Cod sursa (job #3301775)
#include <fstream>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
int v[100005],ciur[1000005],k;
long long n,nr,s,nrdiv;
void er()
{
ciur[0]=ciur[1]=1;
for(int i=2;i<=1000;i++)
for(int j=i*i;j<=1000000;j+=i)
ciur[j]=1;
for(int i=1;i<=1000000;i++)
if(!ciur[i])
v[++k]=i;
}
int main()
{
er();
cin>>n;
//cout<<v[1]<<" "<<v[2]<<" ";
while(n--)
{
long long cnt=0,pelm;
cin>>nr;
s=nrdiv=1;
for(int i=1;1LL*v[i]*v[i]<=nr;i++)
{
if(nr%v[i]==0)
{
cnt=0;
pelm=1;
while(nr%v[i]==0)
{
cnt++;
pelm*=v[i];
nr/=v[i];
}
//cout<<cnt<<" ";
nrdiv*=(cnt+1);
s=s*(pelm*v[i]-1)/(v[i]-1)%9973;
}
}
if(nr>1)
{
nrdiv*=2;
s+=s*nr;
s%=9973;
}
cout<<nrdiv<<" "<<s<<"\n";
}
return 0;
}