Pagini recente » Cod sursa (job #199761) | Cod sursa (job #1455205) | Cod sursa (job #1299700) | Cod sursa (job #2739643) | Cod sursa (job #2462596)
#include <iostream>
#include <fstream>
using namespace std;
int nr_div(int nr)
{
int aux=nr, s=1;
for(int d=2;d*d<=aux;d++)
if(nr%d==0)
{
int putere=0;
while(nr%d==0)
{
putere++;
nr=nr/d;
}
s=s*(putere+1);
}
if(nr!=1)
{
s=s*2;
}
return s;
}
long long int power(long long int n, long long int p)
{
long long int k;
if(n==0)
return 0%9973;
if(p==0)
return 1%9973;
if(p%2==0)
{
k=p/2;
return ((power(n,k)%9973)*(power(n,k)%9973)%9973);
}
else
{
return ((power(n,p-1)%9973)*(n%9973)%9973);
}
}
long long int suma_div(long long int nr)
{
long long int aux=nr, s=1;
for(int d=2;d*d<=aux;d++)
if(nr%d==0)
{
int putere=0;
while(nr%d==0)
{
putere++;
nr=nr/d;
}
s=(s*((power(d,putere+1)-1)%9973)/(d-1))%9973;
}
if(nr!=1)
{
s=(((s*nr)%9973)+(1%9973))%9973;
}
return s%9973;
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long int n, t;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>t;
fout<<nr_div(t)<<" "<<suma_div(t)<<"\n";
}
return 0;
}