Pagini recente » Cod sursa (job #384517) | Cod sursa (job #1747969) | Cod sursa (job #838837) | Cod sursa (job #478300) | Cod sursa (job #2230445)
#include <iostream>
#include <fstream>
#include <bitset>
#include <vector>
#define MOD 9973
#define MAXN 1000001
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
typedef long long ll;
ll divizori,suma,cnt;
bitset<MAXN>prim;
vector<int>el;
void buildCiur(){
for(int i = 2; i < MAXN; i++){
if(prim[i])
continue;
el.push_back(i);
for(int j = i + i; j < MAXN; j +=i)
prim[j] = 1;
}
}
void rez(ll n){
long long suma = 1;
int divizori = 1;
for(auto x: el){
if(1LL*x*x>n)
break;
long long putere = 1;
int exponent = 0;
while(n % x ==0){
n /= x;
putere *= x;
exponent++;
}
divizori *= (exponent+1);
suma *= (putere*x-1) /( x-1);
}
if(n > 1){
divizori *= 2;
suma *= (n+1);
}
}
int main()
{
ciur();
ll t;
in>>t;
for(ll i = 0; i < t; i++){
ll nr;
in>>nr;
rez(nr);
out<<divizori<<" "<<suma % MOD<<"\n";
}
return 0;
}