Pagini recente » Cod sursa (job #2557117) | Cod sursa (job #306760) | Cod sursa (job #2069156) | Cod sursa (job #1907474) | Cod sursa (job #1302745)
#include<iostream>
#include<fstream>
#include<stdio.h>
#include<vector>
#include<bitset>
#include<math.h>
#define nmax 1000003
using namespace std;
vector<long long> prime;
bitset<nmax> ciur;
void p()
{
long long i,j;
prime.push_back(2);
for(i=3;i<=nmax;i=i+2)
{
if(ciur[i]==0)
{
prime.push_back(i);
for(j=3;j*i<=nmax;j=j+2)
ciur[i*j]=1;
}
}
}
long long sum(long long b,int e)
{
long long sum=0,mod=9973;
while(e>0)
{
sum=(sum*b+1)%mod;
--e;
}
return sum;
}
int main()
{
ifstream si;
si.open("ssnd.in");
FILE* so=fopen("ssnd.out","w");
int t,k;
si>>t;
p();
for(k=0;k<t;++k)
{
long long n;
si>>n;
long long i=0,s=n/2,d=1,x=1,c;
while(prime[i]<=s&&n>1)
{
c=0;
while(n%prime[i]==0)
{
n=n/prime[i];
++c;
}
d=(d*(c+1))%9973;
x=(x*sum(prime[i],c+1))%9973;
++i;
}
if(n!=1)
{
d=(d*2)%9973;
x=(x*(n+1))%9973;
}
fprintf(so,"%lli %lli\n",d,x);
}
}