Pagini recente » Cod sursa (job #785102) | Cod sursa (job #1753395) | Cod sursa (job #1219134) | Cod sursa (job #2032293) | Cod sursa (job #1848556)
#include <stdio.h>
#include <stdlib.h>
bool a[1000000];
void get_div(unsigned long &n,unsigned long div,unsigned long &nr,unsigned long &sum){
unsigned long exp=1,p=0;
while(n%div==0){
p++;
exp*=div;
n/=div;
}
nr*=p+1;
sum*=(exp*div-1)/(div-1)%9973;
}
int main(){
for(unsigned long i=3;i<=999997;i+=2)
if(!a[i])
for(unsigned long j=3;j*i<=999997;j+=2)
a[i*j]=1;
freopen("ssnd.in","r",stdin);
unsigned t;
scanf("%u",&t);
freopen("ssnd.out","w",stdout);
while(t--){
unsigned long n,nr=1,sum=1,div=3;
scanf("%lu",&n);
if(n%2==0)
get_div(n,2,nr,sum);
while(n>1){
if(!a[div]&&n%div==0)
get_div(n,div,nr,sum);
div+=2;
}
/*for(unsigned long div=3;div*div<=n;div+=2)
if(!a[div]&&n%div==0){
get_div(n,div,nr,sum);
}*/
printf("%lu %lu\n",nr,sum%9973);
}
fclose(stdin);
fclose(stdout);
return 0;
}