Pagini recente » Cod sursa (job #2036151) | Cod sursa (job #673798) | Cod sursa (job #2080357) | Cod sursa (job #1543271) | Cod sursa (job #2174703)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
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];
SUMA_DIV=(SUMA_DIV*(prod-1)/(v[t]-1))%9903;
t++;
}
if(x!=1)
{
NR_DIV=NR_DIV*2;
SUMA_DIV=(SUMA_DIV*(x+1))%9903;
}
g<<NR_DIV<<" "<<SUMA_DIV%9903<<'\n';
}
return 0;
}