Pagini recente » Cod sursa (job #199905) | Cod sursa (job #1263297) | Cod sursa (job #1909116) | Cod sursa (job #1822241) | Cod sursa (job #3254324)
#include <fstream>
using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
const int N=1e6;
int ciur[100001];
bool c[N+1];
void ciurE()
{
int k=0,i;
for(i=2;i*i<=N;i++)
{
if(c[i]==0)
{
k++;
ciur[k]=i;
for(int j=2*i;j<=N;j+=i)
{
c[j]=1;
}
}
}
for(int j=i;j<=N;j++)
{
if(c[j]==0)
{
k++;
ciur[k]=j;
}
}
}
int main()
{
int t;
cin>>t;
ciurE();
for(int i=1;i<=t;i++)
{
long long n;
cin>>n;
long long suma=1;
int nrdiv=1;
int d=1;
while((long long)ciur[d]*ciur[d]<=n)
{
if(n%ciur[d]==0)
{
int p=0;
long long putere=1;
while(n%ciur[d]==0)
{
putere=(long long)(putere*ciur[d]);
p++;
n/=ciur[d];
}
nrdiv*=(p+1);
putere*=(long long)ciur[d];
putere--;
suma=(long long)(suma*putere)/(ciur[d]-1);
}
d++;
}
if(n!=1)
{
nrdiv*=2;
long long putere=1;
putere=(long long)(n*n-1);
suma=(long long)(suma*putere)/(n-1);
}
cout<<nrdiv<<" "<<suma%9973<<endl;
}
return 0;
}