Pagini recente » Cod sursa (job #2858274) | Cod sursa (job #2692274) | Cod sursa (job #520426) | Cod sursa (job #2669561) | Cod sursa (job #625639)
Cod sursa(job #625639)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char v[1000001];
//int n,cate = 0,i,j;
//FILE *f = fopen("ciur.in","r");
//freopen("ciur.out","w",stdout);
// fscanf(f,"%i",&n);
//fclose(f);
int i,j;
for (i=2; i <= 1000000; i++) {
v[i] = '1';
}
for (i=2; i <= 1000000; i++) {
if (v[i] == '1') {
// ++cate;
for (j=i+i; j <= 1000000; j+=i) {
v[j] = '0';
}
}
}
int r[1000000];
j = 0;
for (i = 2; i <= 1000000; i++)
{
if (v[i] == '1'){
r[j] = i;
j++;
}
}
//printf("%i",cate);
FILE *f = fopen("ssnd.in", "r"), \
*g = fopen("ssnd.out", "w");
int n,nr,nrl,sum,mod = 9973;
long long int x,p = 1;
fscanf(f, "%i", &n);
for (i = 0; i < n; i++)
{
fscanf(f,"%llu", &x);
j = 0;
//jj = 1;
sum = 1;
nr = 1;
nrl = 0;
p=1;
while (x != 1)
{//printf("x = %i\n",x);
// printf("j = %i", j);
if (x % r[j] == 0)
{
x = x / r[j];
p *= r[j];
nrl++;
}
else
{
nr *= (nrl+1) ;
sum =(1LL * sum *(p * r[j] -1)/(r[j] - 1)) % mod;
p = 1;
nrl = 0;
j++;
//while (v[j] == '0') j++;
}
}
nr *= (nrl+1) ;
sum = (1LL*sum*(p * r[j] -1)/(r[j] - 1)) % mod;
p = 1;
nrl = 0;
fprintf(g, "%i %i\n", nr, sum);
}
fclose(f);
fclose(g);
return 0;
}