Pagini recente » Cod sursa (job #2781077) | Cod sursa (job #1141901) | Borderou de evaluare (job #1668082) | Borderou de evaluare (job #966051) | Cod sursa (job #582923)
Cod sursa(job #582923)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int MAX_N=1000005;
long long p,s,nr,k,s1,viz[MAX_N],P[MAX_N],l=0,q,w;
void ciur()
{for(q=2;q<=sqrt(MAX_N);q++) {
if(viz[q]==0) {
P[++l]=q;
for(w=q*q;w<=MAX_N;w+=q)viz[w]=1;
}
}
}
long long rid(int baza,int expo)
{p=1;
for(k=1;k<=expo;k++)
p*=baza;
return p;
}
long long suma1(int baza,int expo)
{s1=0;
do{
s1+=rid(baza,--expo);}while(expo!=0);
return s1;
}
int main()
{int i,t,j,fm,n;
f>>t;
for(i=1;i<=t;i++)
{f>>nr; n=s=1; if(P[nr]) {n*=2; s*=(nr+1); } else {j=2;
do
{fm=0;
while(nr%j==0) {fm++; nr/=j;} n*=(fm+1);
s*=suma1(j,fm+1);
j++;
}while(nr!=1);
}g<<n<<" "<<s%9973<<'\n';}
return 0;
}