Pagini recente » Cod sursa (job #740013) | Cod sursa (job #1597613) | Cod sursa (job #537773) | Cod sursa (job #1264792) | Cod sursa (job #665234)
Cod sursa(job #665234)
#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;
long long putere(int a,int b)
{
long long aux;
if (b==0)return 1;
else
if(b%2==0)
{
aux=putere(a,b/2);
return (aux*aux);
}
else
return (a*putere(a,b-1));
}
int main()
{
for(i=2; i<LE; i++) if (prim[i]==0) {
P++,prim[P]=i;
for(j=2*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*=(putere(prim[nd],NUM+1)-1)/(prim[nd]-1);
NUMAR*=(NUM+1);
}
}
if (X>1) SUMA*=(putere(X,2)-1)/(X-1),NUMAR*=2;
g<<NUMAR<<" "<<SUMA% 9973<<'\n';
}
f.close();
g.close();
return 0;
}