Pagini recente » Cod sursa (job #3272207) | Cod sursa (job #2401489) | Cod sursa (job #1912168) | Cod sursa (job #179255) | Cod sursa (job #2471480)
#include <fstream>
using namespace std;
#define MAXN 1000002
bool ciur[MAXN];
long long prime[MAXN];
int len;
void init(){
for(int i = 2; i <= MAXN; ++i){
if(!ciur[i]){
for(int j = i + i; j <= MAXN; j += i)
ciur[j] = 1;
}
}
prime[++len] = 2;
for(int i = 3; i <= MAXN; i += 2){
if(!ciur[i])
prime[++len] = i;
}
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
ios::sync_with_stdio(false);
fin.tie(0);
fout.tie(0);
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(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 *= (long long)((put - 1) / (prime[pos] - 1));
sumdiv %= 9973;
pos++;
}
if(n > 1){
nrdiv *= 2;
sumdiv *= (long long)((n * n - 1) / (n - 1));
sumdiv %= 9973;
}
fout << nrdiv << " " << sumdiv << "\n";
}
return 0;
}