Pagini recente » Cod sursa (job #167130) | Cod sursa (job #1551290) | Cod sursa (job #433780) | Cod sursa (job #2952314) | Cod sursa (job #2230864)
#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()
{
long long n;
long long nrdiv, sumdiv;
eratostene();
fin>>t;
while(t--){
fin>>n;
nrdiv = 1; sumdiv = 1;
for(int i = 1; i<=k; ++i){
int optimus = prim[i];
if(n<optimus*optimus) 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));
sumdiv%=huim;
}
if(n>1){
nrdiv*=2;
sumdiv*=(n+1);
}
fout<<nrdiv<<' '<<sumdiv<<'\n';
}
return 0;
}