Pagini recente » Cod sursa (job #930608) | Cod sursa (job #351711) | Cod sursa (job #2483458) | Cod sursa (job #1815578) | Cod sursa (job #650636)
Cod sursa(job #650636)
#include<stdio.h>
#include<math.h>
FILE*f=fopen("ssnd.in","r");
FILE*g=fopen("ssnd.out","w");
int n,prim[100005],v[100005],i,q,j,k,y,x,h,r,u,s,nr,a[100005],p[100005];
void d(int t){
int j=1;
q=t;
r=0;
while(q!=0 && j<=q){
h=0;
if(q%prim[j]==0){
r++;
while(q%prim[j]==0){
h++;
q/=prim[j];
}
a[r]=h;
p[r]=prim[j];
}
j++;
}
}
int main (){
k=0;
for(i=2;i<=10000;i++){
if(!v[i]){
k++;
prim[k]=i;
for(j=i+i;j<=10000;j+=i)
v[j]=1;
}
}
fscanf(f,"%d",&n);
for(u=1;u<=n;u++){
fscanf(f,"%d",&y);
d(y);
nr=1;
s=1;
for(i=1;i<=r;i++){
nr*=(a[i]+1);
double dd=pow(p[i],a[i]+1);
dd=trunc(dd);
s*=(dd-1)/(p[i]-1);
}
fprintf(g,"%d %d\n",nr,s%9973);
}
fclose(g);
fclose(f);
return 0;
}