Pagini recente » Cod sursa (job #2381647) | Clasament 237723632 | Cod sursa (job #1621672) | Cod sursa (job #58836) | Cod sursa (job #956908)
Cod sursa(job #956908)
#include <fstream>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
const int NR=1000006;
bool v[NR+1];
int p[500000],nr;
void ciur()
{
for(int i=2;i*i<=1000;i++)
{
if(v[i]==0)
for(int k=i*i;k<=NR;k+=i)
v[k]=1;
}
nr=1;
for(int i=2;i<=NR;i++)
{
if(v[i]==0)
{
p[nr]=i;
nr++;
}
}
}
int main()
{
long long n,x;
long long ndiv=1,sdiv=1,k;
ciur();
in>>n;
for(int i=1;i<=n;i++)
{
in>>x;
ndiv=1;
sdiv=1;
for( k=1;p[k]*p[k]<=x;k++)
{
if(x%p[k]==0)
{
long long a=1,t=p[k];
while(x%p[k]==0)
{
a++;
x/=p[k];
t*=p[k];
}
ndiv*=a;
sdiv*=((t-1)/(p[k]-1));
sdiv%=9973;
}
}
if(x!=1){
ndiv*=2;
sdiv*=(x*x-1)/(x-1);
}
out<<ndiv<<" ";;
out<<sdiv%9973<<"\n";
}
return 0;
}