Pagini recente » Cod sursa (job #1962039) | Cod sursa (job #1278434) | Cod sursa (job #2682354) | Cod sursa (job #1109129) | Cod sursa (job #1231514)
#include <fstream>
#define sDIMN 1000005
#define mod 9973
using namespace std;
int t,sum,nrDiv,v[sDIMN];
bool check[sDIMN];
inline int pow(int x,int p)
{
int res=1;
x%=mod;
for(;p;p>>=1)
{
if(p & 1){
res*=x;
res%=mod;
}
x*=x;
x%=mod;
}
return res;
}
int main()
{
long long n;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int dim=1;
v[1]=2;
for(int i=3;i<sDIMN;i+=2)
{
if(check[i]==true)
{
for(int j=i+i+i;j<sDIMN;j+=(i<<1))
check[j]=false;
v[++dim]=i;
}
}
in >> t;
while(t!=0)
{
in>>n;
nrDiv=1;
sum=1;
for(int i=1;v[i]*v[i]<=n && i<=dim;++i)
{
if(n%v[i]==0)
{
int cnt=0;
while(n%v[i]==0)
{
n/=v[i];
cnt++;
}
nrDiv*=cnt+1;
int t1=(pow(v[i],cnt+1)-1)%mod;
int t2=pow(v[i]-1,mod-2)%mod;
sum=(((sum*t1)%mod)*t2)%mod;
}
}
if (n > 1)
{
nrDiv*=2;
sum = (sum*(n*n-1)/(n-1))%mod;
}
out << nrDiv<<" "<< sum<<endl;
t--;
}
return 0;
}