Pagini recente » Profil Vlad3108 | Cod sursa (job #1123792) | Cod sursa (job #2361336) | Cod sursa (job #2954579) | Cod sursa (job #799564)
Cod sursa(job #799564)
#include<fstream>
#define LL long long
#define M 9973
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t, semn[1000001], ciur[80000];
inline void eratosthenes()
{
ciur[0] = 2;
int lng = 0;
for(int i = 3; i <= 1000000; i += 2)
{
if(!semn[i])
{
ciur[++lng] = i;
for(int j = i + i; j + i <= 1000000; j += i)semn[j] = 1;
}
}
}
inline LL calcul(LL a, int k)
{
LL p = 1;
for(int i = 1; i <= k; ++i)p *= a;
return p;
}
inline void descompune()
{
LL putere,numar, nr = 1, sum = 1,n;
int i = 0,d = 0;
f>>n;
while(ciur[i] * ciur[i] <= n)
{
if(!(n % ciur[i]))
{
d = 0;
LL s = 1;
while(!(n % ciur[i]))
{
d++;
n /= ciur[i];
}
d++;
sum = ((calcul(ciur[i] , d) - 1) / (ciur[i] - 1)) % M;
nr = nr * d;
}
i++;
}
if(n > 1)nr = 2 * nr, sum = (sum * (n + 1)) % M;
g<<nr<<' '<<sum <<'\n';
}
int main()
{
f>>t;
eratosthenes();
while(t--) descompune();
g.close();
return 0;
}