Pagini recente » Cod sursa (job #1230486) | Cod sursa (job #1234083) | Cod sursa (job #2876089) | Cod sursa (job #37729) | Cod sursa (job #414731)
Cod sursa(job #414731)
#include<fstream>
#define Max 990001
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
char x[Max];
long long maxi;
void ciur()
{
long long i,j;
for(i = 2; i*i <= maxi; i++)
if(x[i] == 0)
for(j = i+i; j <= maxi; j+=i)
x[j] = 1;
}
long long putere(long long a,long long b)
{
if(b == 1)return a;
else if(b % 2 == 0)return (putere(a,b/2)%9973)*(putere(a,b/2)%9973);
else return a * (putere(a,b/2)%9973)*(putere(a,b/2)%9973);
}
void sumnrdiv(long long l)
{
long long i,d,pt,dt;
d = 0;
dt = 1;
pt = 1;
long long aux = l;
for(i = 2; i <= l; i++)
{
if(x[i] == 0)
while(aux % i == 0)
{
d++;
aux /= i;
}
dt = dt*(d+1);
pt = (pt*(putere(i,d+1)-1)/(i-1))%9973;
d = 0;
}
fout<<dt<<" "<<pt<<"\n";
}
int b[11];
int main()
{
int t;
long long x=0,i;
fin>>t;
for(i = 1; i<= t; i++)
{
fin>>x;
if(x>maxi)
maxi = x;
b[i] = x;
}
ciur();
for(i = 1; i <= t; i++)
sumnrdiv(b[i]);
fin.close();
fout.close();
}