Pagini recente » Cod sursa (job #226148) | Cod sursa (job #3123571) | Cod sursa (job #174) | Cod sursa (job #3283326) | Cod sursa (job #3282774)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long int n,x,nrd,sd;
bitset <1000001> ciur;
void ciurul()
{
for(int i=2;i<=1000001;i++)
if(ciur[i]==0)
for(int j=i;1ll*j*i<=1000001;j++)
ciur[i*j]=1;
}
long long int put(int a,int n)
{
int p=1;
while(n)
{
if(n%2==1)
p=p*a;
a=a*a;
n/=2;
}
return p;
}
int main()
{
ciurul();
f>>n;
for(;n>0;n--)
{
f>>x;
nrd=1;
sd=1;
long long int p,d=2;
while(x>1)
{
p=0;
if(ciur[d]==0)
{
while(x%d==0)
{
p++;
x=x/d;
}
if(p>0)
{
nrd*=(p+1);
sd=sd*((put(d,p+1)-1)/(d-1));
}
}
d++;
if(x>1 && d*d>x)
d=x;
}
g<<nrd<<" "<<sd%9973<<"\n";
}
}