Pagini recente » Cod sursa (job #1412493) | Cod sursa (job #59958) | Cod sursa (job #1987509) | Cod sursa (job #1670357) | Cod sursa (job #978781)
Cod sursa(job #978781)
#include<fstream>
#include<bitset>
#define maxd 1000005
#define maxp 80000
#define mod 9973
using namespace std;
typedef long long ll;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t,p,nrd,sum;
int prime[maxp];
ll n;
bitset <maxd> sieve;
void preproc()
{
int i,lim=maxd-5;
prime[++p]=2;
for(i=3;i*i<=lim;i+=2)
if(!sieve[i])
{
prime[++p]=i;
for(int j=i;i*j<=lim;j++)
sieve[i*j]=1;
}
for(;i<=lim;i+=2)
if(!sieve[i])
prime[++p]=i;
}
void solve()
{
int nr;
ll prod;
fin>>t;
for(int i=1;i<=t;i++)
{
fin>>n;
nrd=1; sum=1;
for(int j=1;1LL*prime[j]*prime[j]<=n;j++)
if(n%prime[j]==0)
{
nr=0; prod=prime[j];
while(n%prime[j]==0)
{
nr++;
prod*=prime[j];
n/=prime[j];
}
nrd*=(nr+1); prod--;
sum=( sum*(prod/(prime[j]-1))%mod )%mod;
}
if(n>1) nrd*=2,sum=(sum*((n+1)%mod))%mod;
fout<<nrd<<" "<<sum<<'\n';
}
}
int main()
{
preproc();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}