Pagini recente » Cod sursa (job #1875736) | Cod sursa (job #2389957) | Cod sursa (job #1060464) | Cod sursa (job #2765176) | Cod sursa (job #665235)
Cod sursa(job #665235)
#include <fstream>
#include <cmath>
#define LE 1000006
using namespace std;
ifstream f ( "ssnd.in" );
ofstream g ( "ssnd.out" );
long long i,j,prim[LE],nd,NUM,SUMA=1,K,t,X,P,NUMAR=1,Y;
int main()
{
for(i=2; i<LE; i++) if (prim[i]==0) {
P++,prim[P]=i;
for(j=i*i; j<LE; j+=i) prim[j]=1;
}
for (t=1,f>>K;t<=K;t++,NUMAR=1,SUMA=1,nd=0) {
f>>X,Y=X;
while (X!=1&&nd<P&&prim[nd]*prim[nd]<=Y) {
nd++,NUM=0;
while (X%prim[nd]==0) X/=prim[nd],NUM++;
if (NUM>0) {
SUMA*=(pow(prim[nd],NUM+1)-1)/(prim[nd]-1);
NUMAR*=(NUM+1);
}
}
if (X>1) SUMA*=(pow(X,2)-1)/(X-1),NUMAR*=2;
g<<NUMAR<<" "<<SUMA% 9973<<'\n';
}
f.close();
g.close();
return 0;
}