Pagini recente » Cod sursa (job #1119207) | Cod sursa (job #2983147) | Cod sursa (job #678982) | Cod sursa (job #2124865) | Cod sursa (job #2216951)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int MOD=9973;
const int val_max=1e6;
bool ciur[val_max+5];
int prime[val_max+5], cnt, d;
int i, j;
int t, aux;
long long x;
long long produs, nd, sum, p;
int main()
{
//Ciurul lui Eratostene
ciur[0]=ciur[1]=true;
for(i=3; i*i<=1000001; i+=2)
if(ciur[i]==false)
for(j=2; j*i<=1000001; j++)
ciur[i*j]=true;
cnt++;
prime[cnt]=2;
for(i=3; i<=1000001; i+=2)
if(ciur[i]==false)
prime[++cnt]=i;
//
/*for(i=1; i<=cnt; i++)
g<<prime[i]<<' ';*/
f>>t;
for(i=1; i<=t; i++)
{
f>>x;
d=2;
sum=1;
nd=1;
aux=1;
while(d*d<=x && aux<=cnt)
{
if(x%d==0)
{
p=0;
produs=1;
while(x%d==0)
{
p++;
x/=d;
produs*=d;
}
if(p)
{
nd*=(p+1);
sum*=((produs*d-1)/(d-1));
sum%=MOD;
}
}
aux++;
d=prime[aux];
}
if(x!=1)
{
nd*=2;
sum*=((x*x-1)/(x-1));
sum%=MOD;
}
g<<nd<<' '<<sum<<'\n';
}
return 0;
}