Pagini recente » Cod sursa (job #1711326) | Cod sursa (job #2321258) | Cod sursa (job #1676471) | Cod sursa (job #42919) | Cod sursa (job #2000903)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define File_in "ssnd.in"
#define File_out "ssnd.out"
#define MAX 1000000000
char ciur[MAX];
long long n;
int P[100000],k;
void ciurul_lui_Eratosthenes()
{
int i,j;
for ( i = 2; i < 1000000; ++i)
if( ciur[i] == 0){
P[++k]=i;
for(j= i+i; j < 1000000; j +=i)
ciur[j] = 1;
}
}
void ssnd (int *nr, int *s){
int i,a,p;
*nr = 1;
*s = 1;
if(n<1000001&&ciur[n]==0||n==1||n==0){
*nr=2,*s=n+1;
if(n == 1 || n == 0 )
*nr = n,*s = n;
}
else{
for ( i= 1;i<=k &&1ll*P[i]*P[i]<=n; i++ )
if( n % P[i] == 0){
a = 0;
while(n%P[i]==0){
n/=P[i];
a++;
}
*nr=*nr*(a+1);
*s= *s*((pow (P[i], a+1)-1)/(P[i]-1));
*s%=9973;
}
if(n > 1) {
*nr*=2;
*s *=(n+1);
*s%=9973;
}
}
}
int main()
{
freopen(File_in, "r", stdin);
freopen(File_out, "w", stdout);
int t,i,j;
scanf("%d",&t);
ciurul_lui_Eratosthenes();
for ( i = 1; i <= t; i++)
{
scanf("%lld",&n);
int nr,s;
ssnd(&nr,&s);
printf("%d %d\n",nr,s);
}
return 0;
}