Pagini recente » sim5 | Cod sursa (job #1272167) | Cod sursa (job #1056663) | Cod sursa (job #3261503) | Cod sursa (job #1245675)
#include<stdio.h>
#include<math.h>
#include<bitset>
using namespace std;
#define NMAX 1000000
#define MOD 9973
int np, prime[78500];
bitset<NMAX+2> c;
void ciur()
{
int pas;
prime[++np]=2;
for(int i=3; i<=NMAX; i+=2)
{
if(!c[i])
{
prime[++np]=i;
if(i<=NMAX/i)
{
pas=2*i;
for(int j=i*i; j<=NMAX; j+=pas)
c[j]=true;
}
}
}
}
int main()
{
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
int n, num, exp, lim;
long long x, sum, aux;
ciur();
scanf("%d", &n);
for(int i=1; i<=n; ++i)
{
num=sum=1;
scanf("%lld", &x);
lim=sqrt(x);
for(int j=1; prime[j]<=lim && j<=np ;++j)
{
if(x%prime[j]==0)
{
exp=0;
aux=prime[j];
while(x%prime[j]==0)
x/=prime[j], ++exp, aux*=prime[j];
num*=(exp+1);
sum=((long long)sum*(aux-1ll)/(prime[j]-1))%MOD;
}
}
if(x!=1)
{
num*=2;
sum+=sum*x;
}
printf("%d %d\n", (num%MOD), (sum%MOD));
}
return 0;
}