Pagini recente » Lesbulan | jc2019 | Pswap | Profil antonia | Cod sursa (job #865514)
Cod sursa(job #865514)
#include <stdio.h>
#include<math.h>
FILE *in,*out;
using namespace std;
int t,i,c[1001],j,u,v[1001],n,poz,l,exponent,S;
double putere,prod,nr;
int main()
{
in=fopen("ssnd.in","rt");
out=fopen("ssnd.out", "wt");
fscanf(in, "%d", &t);
putere=pow(10,4);
for(i=2;i<=putere; i++)
if (!c[i])
{
for (j=i+i; j<=putere; j+=i)
c[j]=1;
}
for (i=2; i<=putere; i++)
if(!c[i])
v[++u]=i;
for (i=1 ; i<=t ; i++)
{
fscanf(in, "%d", &n);
nr=1;
prod=1;poz=1;
while (n>1)
{
exponent=0;
while (n%v[poz]==0)
{
n/=v[poz];
S+=v[poz];
exponent++;
}
//calc nr de divizori
if(exponent>=1)
nr*=(exponent+1);
//calc suma diviz
prod*=(pow(v[poz], exponent+1)-1)/(v[poz]-1);
poz++;
}
fprintf(out, "%.lf %.lf\n", nr, prod);
}
fclose(in);
fclose(out);
return 0;
}