Pagini recente » Cod sursa (job #62942) | Cod sursa (job #197536) | Cod sursa (job #2461526) | Cod sursa (job #3220017) | Cod sursa (job #1521501)
#include <stdio.h>
#define lim 1000001
#define MOD 9973
int v[500000];
char ciur[lim];
long long put(long long a,long long b){
long long rez=1;
while(b!=0){
if(b%2==1){
rez=rez*a;
b--;
}
a=a*a;
b/=2;
}
return rez;
}
int main(){
FILE *fin,*fout;
fin=fopen("ssnd.in","r");
fout=fopen("ssnd.out","w");
long long i,j,x,n,nr,s,div,ap;
for(i=2;i*i<=lim;i++){
if(ciur[i]==0){
for(j=i*i;j<=lim;j+=i)
ciur[j]=1;
}
}
nr=0;
for(i=2;i<=lim;i++)
if(ciur[i]==0){
nr++;
v[nr]=i;
}
fscanf(fin,"%lld",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%lld",&x);
nr=1;
s=1;
for(j=1;v[j]*v[j]<=x;j++){
div=v[j];
ap=0;
while(x%div==0){
ap++;
x/=div;
}
nr=nr*(ap+1);
//s=(s*(put(div,ap+1)-1)*(put(div,MOD-2)-1))%MOD;
s=(s*(put(div,ap+1)-1)/(div-1))%MOD;
}
//x!=1
if(x!=1){
div=x;
ap=1;
nr=nr*(ap+1);
s=(s*(put(div,ap+1)-1)/(div-1))%MOD;
}
fprintf(fout,"%lld %lld\n",nr,s);
}
fclose(fin);
fclose(fout);
return 0;
}