Pagini recente » Cod sursa (job #740715) | Cod sursa (job #2966855) | Cod sursa (job #927677) | Cod sursa (job #2440371) | Cod sursa (job #581538)
Cod sursa(job #581538)
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
char prim[100000];
void ciur(long long nr)
{int a,b;
for(a=2;a<=sqrt(nr);a++)
prim[a]=1;
for(a=2;a<=sqrt(nr);a++)
if(prim[a])
for(b=a*a;b<=sqrt(nr);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,max; int t,fm,v[1001];
f>>t;
for(j=1;j<=t;j++)
f>>v[j];
max=v[1];
for(j=2;j<=t;j++)
if(v[j]>max) max=v[j]; ciur(max);
for(j=1;j<=t;j++)
{ nrdiv=sumadiv=1;
if(prim[v[j]]) {nrdiv*=2; sumadiv*=(1+v[j]);} else
{i=2;
do{fm=0;
while(v[j]%i==0 )
{fm++;
v[j]/=i;}
nrdiv*=(fm+1);
sumadiv*=(powA(i,fm)-1)/(i-1);
i++;
}while(v[j]!=1);
}g<<nrdiv<<" "<<sumadiv%9973<<'\n';}
}