Pagini recente » Cod sursa (job #696849) | Cod sursa (job #714913) | Cod sursa (job #620581) | Cod sursa (job #815541) | Cod sursa (job #1302827)
#include<iostream>
#include<fstream>
#include<stdio.h>
#include<vector>
#include<bitset>
#include<math.h>
#define nmax 1000003
using namespace std;
long long prime[nmax];
bitset<nmax> ciur;
int nrp=1;
void p()
{
long long i,j;
prime[0]=2;
for(i=3;i<=nmax;i=i+2)
{
if(ciur[i]==0)
{
prime[nrp]=i;
nrp=nrp+1;
for(j=3;i*j<=nmax;j=j+2)
{
ciur[j*i]=1;
}
}
}
}
int main()
{
ifstream si;
si.open("ssnd.in");
FILE* so=fopen("ssnd.out","w");
int t,k;
si>>t;
p();
cout<<nrp;
for(k=0;k<t;++k)
{
long long n;
si>>n;
int i,c,d=1,s=1,mod=9973;
long long p;
for(i=0; prime[i]*prime[i]<=n && i<nrp ;++i)
{
if(n%prime[i]==0)
{
c=0;
p=prime[i];
while(n%prime[i]==0)
{
++c;
p=p*prime[i];
n=n/prime[i];
}
d=(d*(c+1))%mod;
s=(s*(p-1LL)/(prime[i]-1LL))%mod;
}
}
if(n!=1)
{
d=(d*2)%mod;
s=(s*(n+1))%mod;
}
fprintf(so,"%i %i\n",d,s);
}
}