Pagini recente » Cod sursa (job #1371555) | Cod sursa (job #649308) | Borderou de evaluare (job #1532007) | Cod sursa (job #2504348) | Cod sursa (job #1465908)
#include <fstream>
#define NMAX 1000005
#define MOD 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long t,i,n,p[NMAX],nr,aux,sol1,sol2,k,nrd;
bool c[NMAX];
void ciur()
{
c[1] = 1;
for(int i = 2 ; i * i <= NMAX ; ++i){
if(c[i] == 0){
for(int j = i * i ; j <= NMAX ; j += i){
c[j] = 1 ;
}
}
}
for(int i = 1 ; i <= NMAX ; ++i){
if(c[i] == 0){
p[++nrd] = i ;
}
}
}
int main()
{
f >> t;
ciur();
for(int i = 1 ; i <= t ; ++i){
f >> n ;
k = 1 ;
sol1 = 1 ;
sol2 = 1 ;
while(p[k] * p[k] <= n && k <= nrd){
nr = 0 ;
aux = 1 ;
while(n % p[k] == 0){
n /= p[k] ;
++nr ;
aux *= p[k] ;
}
aux *= p[k] ;
sol1 *= (nr + 1) ;
sol2 = (sol2 * (aux - 1) / (p[k] - 1)) % MOD ;
++k ;
}
if(n != 1){
sol1 *= 2 ;
sol2 = (sol2 * (n +1 )) % MOD ;
}
g << sol1 << " " << sol2 << '\n' ;
}
return 0;
}