Pagini recente » Cod sursa (job #2883191) | Cod sursa (job #2233462) | Cod sursa (job #2322741) | Cod sursa (job #180108) | Cod sursa (job #1459589)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int sumdiv=1,nrdiv=1,n,prim[500000],a[1000010],nr;
void Solve (int p)
{
int apar=0;
int nrt=0;
int aux=1;
int i,j;
for (i=1;i<=nr;i++)
{
if (prim[i]>p) break;
if (p%prim[i]==0)
{
apar=0;
aux=1;
// div[nrt]=prim[i];
while (p%prim[i]==0)
{
apar++;
p/=prim[i];
}
//cout<<apar<<" "<<prim[i]<<"\n";
for (j=1;j<=apar+1;j++)
{
aux*=prim[i];
}
aux--;
aux=aux/(prim[i]-1);
}
sumdiv*=aux;
sumdiv%=9973;
nrdiv*=(apar+1);
}
}
void Ciur ()
{
int i,j;
for (i=2;i<=1000000;i++)
for (j=i+i;j<=1000000;j+=i) a[j]=1;
nr=0;
for (i=2;i<=1000000;i++)
{
if (a[i]==0) {nr++;prim[nr]=i;}
}
}
int main()
{
Ciur ();
int i;
f>>n;
int x;
for (i=1;i<=n;i++)
{
f>>x;
sumdiv=1;
nrdiv=1;
Solve (x);
g<<nrdiv<<" "<<sumdiv<<"\n";
}
return 0;
}