Pagini recente » Cod sursa (job #2591606) | Cod sursa (job #2613251) | Cod sursa (job #1610452) | Cod sursa (job #2864130) | Cod sursa (job #447814)
Cod sursa(job #447814)
#include <cstdio>
#include <math.h>
using namespace std;
#define ll long long
#define nmax 1000002
#define kmax 78950
#define MOD 9973
FILE *f=fopen("ssnd.in","r");
FILE *g=fopen("ssnd.out","w");
int t;
int p,d;
int np[kmax],k;
bool ok[nmax];
int card,sum;
ll n;
void ciur()
{
int i,j;
for(i=2;i<=nmax-2;i++)
{
if(!ok[i])
{
ok[i]=true;
np[++k]=i;
for(j=2*i;j<=nmax-2;j+=i)
ok[j]=true;
}
}
}
void solve()
{
int i;
card=sum=1;
for(i=1;np[i]<=n;i++)
{
if(n%np[i]==0)
{
p=np[i];
d=0;
while(n%np[i]==0)
{
n/=np[i];
++d;
}
card*=(d+1);
sum*=((pow(p,d+1)-1)/(p-1));
sum%=MOD;
}
}
}
int main()
{
ciur();
fscanf(f,"%d",&t);
while(t)
{
fscanf(f,"%lld",&n);
--t;
solve();
fprintf(g,"%d %d\n",card,sum);
}
return 0;
}