Pagini recente » Cod sursa (job #757655) | Borderou de evaluare (job #1567410) | Cod sursa (job #2728332) | Cod sursa (job #3266263) | Cod sursa (job #2230956)
#include <fstream>
#include <bitset>
#define huim 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bitset <1000000> p;
int prim[166670];
int k = 0, t;
void eratostene(){
for(int i = 2; i<=1000; ++i){
if(!p[i]){
prim[++k] = i;
for(int j = 2*i; j<=1000000; j+=i){
p[j] = true;
}
}
}
for(int i = 1001; i<1000000; i++){
if(!p[i]){
prim[++k] = i;
}
}
}
int main()
{
eratostene();
fin>>t;
while(t--){
long long n;
fin>>n;
long long nrdiv = 1, sumdiv = 1;
for(int i = 1; i<=k; ++i){
int optimus = prim[i];
if(optimus*optimus*1LL>n) break;
long long putregai = 1;
int ori = 0;
while(n%optimus==0){
ori++;
n/=optimus;
putregai*=optimus;
}
nrdiv*=ori+1;
sumdiv*=((putregai*optimus-1)/(optimus-1));
}
if(n>1){
nrdiv<<=1;
sumdiv*=(n+1);
}
fout<<nrdiv<<' '<<sumdiv%huim<<'\n';
}
return 0;
}