Pagini recente » Istoria paginii runda/hc_round4/clasament | Cod sursa (job #1787675) | Cod sursa (job #1649543) | Cod sursa (job #283368) | Cod sursa (job #405798)
Cod sursa(job #405798)
#include<fstream>
#include<bitset>
using namespace std;
const char iname[]="ssnd.in";
const char oname[]="ssnd.out";
const int maxn=1000005;
const int mod=9973;
ifstream f(iname);
ofstream g(oname);
bitset<maxn> a;
int p[maxn],i,n;
long long x,j,k,s,nr,v,r;
int main()
{
f>>n;
for(j=2;j<maxn;++j)
if(a[j]==0)
{
p[++k]=j;
for(s=j*j;s<maxn;s+=j)
a[s]=1;
}
for(i=1;i<=n;++i)
{
f>>x;
nr=1;
s=1;
for(j=1;p[j]*p[j]<=x;++j)
{
v=0;r=1;
while(x%p[j]==0)
x/=p[j],r*=p[j],++v;
nr*=v+1;
s*=(r*p[j]-1)/(p[j]-1);
s%=mod;
}
if(x>1)
nr*=2,s*=x+1,s%=mod;
g<<nr<<" "<<s<<"\n";
}
f.close();
g.close();
return 0;
}