Pagini recente » Cod sursa (job #259889) | Cod sursa (job #2637510) | Cod sursa (job #2817356) | Cod sursa (job #86101) | Cod sursa (job #2174742)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int putere1(int baza,int putere)
{
int P=1;
while(putere!=0)
{
if(putere%2==1){P=P*baza;putere--;}
else {putere=putere/2;baza=baza*baza;}
}
return P;
}
long long d,t,i,prod,n,x,p,j,NR_DIV,SUMA_DIV,v[100001];
bool a[1000001];
int main()
{
//g<<(sizeof(a)+sizeof(v))/1024.0<<'\n';
a[1]=1;
a[0]=1;
for(d=2; d*d<=1000000; d++)
if(a[d]==0)
{
for(i=d*d; i<=1000000; i=i+d)
a[i]=1;
}
for(i=2; i<=1000000; i++)
{
if(a[i]==0)
{
t++;
v[t]=i;
}
}
f>>n;
for(i=1; i<=n; i++)
{
f>>x;
t=1;
NR_DIV=1;SUMA_DIV=1;
while(v[t]*v[t]<=x)
{
p=0;
prod=1;
while(x%v[t]==0)
{
p++;
x=x/v[t];
}
NR_DIV=NR_DIV*(p+1);
//for(j=1; j<=p+1; j++)prod=prod*v[t];
prod=putere1(v[t],p+1);
SUMA_DIV=(SUMA_DIV*(prod-1)/(v[t]-1))%9973;
t++;
}
if(x!=1)
{
NR_DIV=NR_DIV*2;
SUMA_DIV=(SUMA_DIV*(x+1))%9973;
}
g<<NR_DIV<<" "<<SUMA_DIV%9973<<'\n';
}
return 0;
}