Cod sursa(job #699993)

Utilizator misinoonisim necula misino Data 29 februarie 2012 22:32:25
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
using namespace std;
FILE *f,*g;
int i,j,nr,d,s,x,p,nr1,n,v[1000000];
bool a[1000000];
int main()
{f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
fscanf(f,"%d",&n);
for(i=3;i<=1000;i=i+2)
	if(a[i]==0)
		for(j=i*i;j<=1000000;j=j+i)
			a[j]=1;
v[1]=2;
nr=1;
for(i=3;i<=1000000;i=i+2)
	++nr,v[nr]=i;
for(i=1;i<=n;++i)
{fscanf(f,"%d",&x);
nr=1;
s=1;
for(d=1;x!=1;++d)
{nr1=0;
p=v[d];
while(x%v[d]==0)
{nr1++;
x=x/v[d];
p=p*v[d];
}
if(nr1!=0)
	s=(s*(((p-1)/(v[d]-1)%9973)))%9973;
nr=nr*(nr1+1);
}
fprintf(g,"%d %d\n",nr,s);
}
fclose(f);
fclose(g);
return 0;
}