Pagini recente » Cod sursa (job #2536643) | Cod sursa (job #1037231) | Cod sursa (job #1239367) | Cod sursa (job #1650524) | Cod sursa (job #2592879)
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int expLog(int a, int b);
void rezolva(int a);
int main()
{
int n, div;
fin >> n;
int d;
int sdiv;
int nrdiv;
int exp;
for(int i = 1; i <= n; ++i)
{
fin >> div;
d = 2;
sdiv = 1;
nrdiv = 1;
while(div != 1)
{
exp = 0;
while(div % d == 0)
{
div = div / d;
exp++;
}
nrdiv = nrdiv * (exp + 1);
sdiv = ((sdiv % 9973) * (((expLog(d, exp + 1) - 1) / (d - 1)) % 9973)) % 9973;
if(d == 2)
d = 3;
else
d += 2;
if(d * d > div)
d = div;
}
fout << nrdiv << ' ' << sdiv << '\n';
}
fin.close();
fout.close();
return 0;
}
int expLog(int a, int b)
{
if(b == 1)
return a;
else if(b % 2 == 0)
return expLog(a * a, b / 2);
else return a * expLog(a * a, b / 2);
}