Pagini recente » Cod sursa (job #1663324) | Cod sursa (job #1354868) | Cod sursa (job #1597097) | Cod sursa (job #2519954) | Cod sursa (job #2230441)
#include <iostream>
#include <fstream>
#include <bitset>
#define MOD 9973
#define MAXN 1000001
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
typedef long long ll;
ll nr_diviz,suma,v[MAXN],cnt;
bitset<MAXN>prim;
void ciur(){
for(ll i = 2; i < MAXN; i++){
if(!prim[i]){
v[cnt++] = i;
for(ll j = i + i; j < MAXN; j+= i)
prim[j] = true;
}
}
}
void rez(ll n){
ll i = 0,exp,d = v[i],put;
nr_diviz = 1,suma = 1;
while(d * d <= n){
exp = 0;
put = 1;
while(n % d == 0){
n /= d;
exp++;
put *= d;
}
if(exp > 0){
nr_diviz *= (exp + 1);
suma = (put * d - 1)/(d - 1);
}
d = v[i++];
}
if(n > 1){
nr_diviz *= 2;
suma *= (n + 1);
}
}
int main()
{
ll t;
in>>t;
ciur();
for(ll i = 0; i < t; i++){
ll nr;
in>>nr;
rez(nr);
out<<nr_diviz<<" "<<suma % MOD<<"\n";
}
return 0;
}