Pagini recente » Cod sursa (job #101986) | Cod sursa (job #3254997) | Cod sursa (job #2310267) | Cod sursa (job #1493811) | Cod sursa (job #2417480)
#include <fstream>
#include <cstdio>
using namespace std;
#define NMAX 1000002
bool ciur[NMAX];
int prime[NMAX];
int len;
void init(){
for(int i = 2; i < NMAX; ++i){
if(!ciur[i]){
prime[++len] = i;
for(int j = i + i; j < NMAX; j += i)
ciur[j] = true;
}
}
}
int main()
{
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
int t;
fin >> t;
init();
for(int numar = 1; numar <= t; ++numar){
long long n;
fin >> n;
int nrdiv = 1, pos = 1, exp;
long long sumdiv = 1LL;
while(1LL * prime[pos] * prime[pos] <= n && pos <= len){
long long put = 1LL;
exp = 0;
while(n % prime[pos] == 0){
n /= prime[pos];
put *= prime[pos];
exp++;
}
put *= prime[pos];
nrdiv *= (exp + 1);
sumdiv *= ((put - 1) / (prime[pos] - 1));
pos++;
}
if(n > 1){
nrdiv <<= 1;
sumdiv *= (n + 1);
}
sumdiv %= 9973;
fout << nrdiv << ' ' << sumdiv << '\n';
}
return 0;
}