Pagini recente » Cod sursa (job #1480821) | Cod sursa (job #2517730) | Cod sursa (job #634978) | Cod sursa (job #2414454) | Cod sursa (job #2772307)
#include <fstream>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
#define MOD 9973
bool ciur[1000001];
long long n, x, prime[1000001], k, nr=1, sum=1, pw;
long long putere(long long baza, long long exp)
{
if(exp==0)
return 1;
long long x=putere(baza, exp/2);
if(exp%2==0)
return x*x%MOD;
else return x*x%MOD*baza%MOD;
}
int main()
{
for(long long i=2; i<=1000000; i++)
{
if(ciur[i]==0)
{
k++;
prime[k]=i;
for(long long j=2; i*j<=1000000; j++)
ciur[i*j]=1;
}
}
fin>>n;
for(long long i=1; i<=n; i++)
{
fin>>x;
nr=1;
sum=1;
for(long long div=1; prime[div]*prime[div]<=x; div++)
{
if(x%prime[div]==0)
{
long long pw=0;
while(x%prime[div]==0)
{
pw++;
x/=prime[div];
}
nr=nr*(pw+1)%MOD;
long long a=putere(prime[div], pw+1)-1;
if(a<0) a+=MOD;
long long b=prime[div]-1;
sum=sum*(a*putere(b, MOD-2)%MOD)%MOD;
}
}
if(x>1) {nr=nr*2%MOD; long long a=putere(x, 2)-1; if(a<0) a+=MOD; long long b=x-1; sum=sum*(a*putere(b, MOD-2)%MOD)%MOD;}
fout<<nr<<' '<<sum<<'\n';
}
return 0;
}