Pagini recente » Cod sursa (job #1954820) | Cod sursa (job #42591) | Cod sursa (job #1921257) | Cod sursa (job #1815136) | Cod sursa (job #1832060)
#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;
scanf("%lu",&n);
if(n%2==0)
get_div(n,2,nr,sum);
for(unsigned long div=3;div<=n;div+=2)
if(!a[div]&&n%div==0){
get_div(n,div,nr,sum);
}
if(nr==1&&sum==1){
nr=2;
sum+=n;
}
printf("%lu %lu\n",nr,sum%9973);
}
fclose(stdin);
fclose(stdout);
return 0;
}