Pagini recente » Cod sursa (job #429669) | Cod sursa (job #3236422) | Cod sursa (job #2498308) | Cod sursa (job #3266303) | Cod sursa (job #3302128)
#include <bits/stdc++.h>
using namespace std;
bool p[1000005];
long long v[3],P[1000005],k;
const long long mod=9973;
void descompunere_in_factori_primi (long long x)
{
long long exp, d=1, nrdiv=1, s=1, p=1,j;
while(x>1)
{
exp=0;
while(x%P[d]==0)
{
exp++;
x/=P[d];
}
nrdiv*=(exp+1);
p=1;
for (j=1; j<=exp+1; j++)
p*=P[d];
s*=(p-1)/(P[d]-1);
s%=mod;
d++;
if(P[d]*P[d]>x&&x>1){
nrdiv*=2;
s*=1+x;
s%=mod;
x=1;
}
}
s%=mod;
v[1]=nrdiv;
v[2]=s;
}
int main()
{
for(int i=2;i<1000005;i++)p[i]=true;
for(int i=2;i<1000005;i++){
if(p[i]){
P[++k]=i;
for(int j=2*i;j<1000005;j+=i)p[j]=false;
}
}
FILE *fin, *fout;
fin=fopen ("ssnd.in", "r");
fout=fopen ("ssnd.out", "w");
long long t;
long long x;
fscanf (fin, "%lld", &t);
for (long long i=1; i<=t; i++)
{
fscanf (fin, "%lld", &x);
descompunere_in_factori_primi(x);
fprintf (fout, "%lld %lld\n", v[1], v[2]);
}
fclose (fin);
fclose (fout);
return 0;
}