Pagini recente » Cod sursa (job #2795182) | Cod sursa (job #1108953) | Diferente pentru concursuri-informatica intre reviziile 33 si 32 | Cod sursa (job #1805086) | Cod sursa (job #2482673)
#include <iostream>
#include <fstream>
#include <cmath>
#define mod 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
void divizori(int n, int &suma, int &nr)
{
suma=nr=1;
int d=2,p=0,k;
while(n>1)
{
p=0;
k=d;
while(n%d==0)
{
k=(1LL*k*d)%mod;
p++;
n=n/d;
}
if(p>0)
{
nr=nr*(p+1);
k--;
suma=(1LL*suma*(k/(d-1)))%mod;
}
if(d==2)
d++;
else
d=d+2;
if(n>1 && d*d>n)
d=n;
}
g<<nr<<" "<<suma<<endl;
}
int main()
{
int n,i,x,nr,suma;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
divizori(x,nr,suma);
}
return 0;
}