Pagini recente » Cod sursa (job #2104883) | Cod sursa (job #2202272) | Cod sursa (job #2357409) | Cod sursa (job #2103161) | Cod sursa (job #581643)
Cod sursa(job #581643)
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long prim[1000001];
int maxim;
void ciur()
{ int a,b;
for(a=2;a*a<=maxim;a++)
prim[a]=1;
for(a=2;a*a<=maxim;a++)
if(prim[a])
for(b=a*a;b*b<=maxim;b+=a)
prim[b]=0;
}
long long powA(long long baza, long long exponent)
{long long k,putere;
putere=1;
for(k=1;k<=exponent+1;k++)
putere*=baza;
return putere;
}
int main()
{ long long nrdiv,sumadiv,j,i; int t,p,k,putere,v[1001];
f>>t;
for(j=1;j<=t;j++)
{f>>v[j]; if(maxim<v[j]) maxim=v[j];} ciur();
for(j=1;j<=t;j++)
{ nrdiv=sumadiv=1;
for(i=2;i*i<=v[j];i++)
{p=0;
if(v[j]%i==0 && prim[i]==1)
{while(v[j]%i==0)
{v[j]/=i;
p++;
}
nrdiv*=(p+1);
putere=1;
for(k=1;k<=p+1;k++)
putere*=i;
sumadiv*=(putere-1)/(i-1);
}
}g<<nrdiv<<" "<<sumadiv<<'\n';}
}