Pagini recente » Cod sursa (job #2231255) | Cod sursa (job #701205) | Cod sursa (job #1543688) | Cod sursa (job #1896000) | Cod sursa (job #1411801)
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
#define MAX 1000010
long long a[1010][3],t;
long long n;
bool V[MAX];
int main()
{
FILE *in,*out;
in=fopen("ssnd.in","r");
out=fopen("ssnd.out","w");
fscanf(in,"%lld",&t);
int i,j;
for(i=1;i<=t;i++)
{
a[i][1]=a[i][2]=1;
fscanf(in,"%lld",&a[i][0]);
if(a[i][0]==1)
a[i][0]=-1;
}
for(i=2;i<=MAX;i++)
{
if(V[i]==0)
{
for(j=1;j<=t;j++)
if(a[j][0]>1)
{
long long pr=1,nd=0;
while(a[j][0]!=1 && a[j][0]%i==0)
{
nd++;
pr=pr*i;
a[j][0]=a[j][0]/i;
}
a[j][1]=a[j][1] * (nd+1);
a[j][2]=(a[j][2]* (pr*i-1)/(i-1))%9973;
}
for(j=i;j<=MAX/i;j++)
V[i*j]=1;
}
}
for(i=1;i<=t;i++)
{
if(a[i][0]>MAX)
a[i][2]=(a[i][2] +a[i][0])%9973;
fprintf(out,"%lld %lld \n",a[i][1],a[i][2]);
}
fclose(in);
fclose(out);
return 0;
}