Pagini recente » Cod sursa (job #879918) | Cod sursa (job #2829766) | Cod sursa (job #1363532) | Cod sursa (job #2921491) | Cod sursa (job #982720)
Cod sursa(job #982720)
using namespace std;
#include<cstdio>
#include<bitset>
#define MAX 1000005
#define MAX2 78600
#define MOD 9973
bitset <MAX> ciur;
int prim[MAX2];
void ciur_er()
{
int i,j,k=1;
prim[k]=2;
for(i=3;i<MAX-1;i=i+2)
if(!ciur[i])
{
prim[++k]=i;
for(j=i+i+i;j<MAX-1;j=j+i+i)
ciur[j]=1;
}
}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int T,n,c,nrd,i,m,S,P;
long long nrd,P;
ciur_er();
scanf("%lld",&T);
while(T--)
{
scanf("%lld",&n);
nrd=1;
S=1;
for(i=1;prim[i]*prim[i]<=n;i++)
{
m=n;
c=1;
while(n%prim[i]==0)
{
n=n/prim[i];
c++;
}
nrd=nrd*c;
P=(1LL*m/n*prim[i]-1)/(prim[i]-1);
S=(1LL*S*P)%MOD;
}
if(n!=1)
{
nrd=nrd*2;
S=(1LL*S*(n+1))%MOD;
}
printf("%lld %lld\n",nrd,S);
}
return 0;
}