Pagini recente » Cod sursa (job #971460) | Cod sursa (job #1426530) | Cod sursa (job #2976285) | Cod sursa (job #1221239) | Cod sursa (job #799523)
Cod sursa(job #799523)
#include <fstream>
#define LL long long
#define MOD 9973
using namespace std;
int t;
ifstream f("ssnd.in"); ofstream g("ssnd.out");
int r [80000];
char w [1000001]; //w[i] == 0 if i is prime
inline void ciur()
{ int i, j, nr=0;
for (i = 2; i <= 1000000; ++i)
if (w[i] == 0)
{ r[++nr]=i;
for (j = i + i; j <= 1000000; j += i) w[j] = 1;
}
}
inline LL calc(LL a, int k)
{ LL p=a;
while(--k) p*=a;
return p;
}
inline void desc()
{ int i = 1;
LL n,nrdiv=1,sum=1;
f >> n;
while(r[i]*r[i]<=n)
{ if(!(n%r[i]))
{ int d = 0;
LL prod=1;
while(!(n%r[i]))
{d++; n/=r[i];}
d++;
prod = ((calc(r[i],d)-1) / (r[i]-1)) % MOD;
sum = (sum * prod) % MOD;
nrdiv = nrdiv * d;
}
++i;
}
if(n>1)
{ nrdiv = nrdiv * 2;
sum = (sum * (n+1)) % MOD;
}
g<<nrdiv<<' '<<sum<<'\n';
}
int main()
{ ciur();
f >> t;
while(t--) desc();
g.close(); return 0;
}