Pagini recente » Cod sursa (job #2041510) | Cod sursa (job #3291976) | Cod sursa (job #3232534) | Cod sursa (job #796377) | Cod sursa (job #2312381)
#include<fstream>
#define NMAX 1000000
#define dimensiune_vector 1000005
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int a;
long long b,prime[dimensiune_vector],z;
char Prim[dimensiune_vector];
void ciur(){
Prim[0]=1;
Prim[1]=1;
for(int i=4;i<= NMAX;i+=2)
Prim[i]=1;
for(int i=3;i*i<= NMAX;i+=2)
for(int j=i*i;j<= NMAX;j+=2*i)
Prim[j]=1;
prime[++z]=2;
for(int i=3;i<= NMAX;i+=2)
if(Prim[i]==0)
prime[++z]=i;
}
int main()
{
ciur();
fin>>a;
for(int i=0;i<a;i++){
long long x, counter_div=1,sum_div=1;
fin>>x;
for(int i=1;i<=z && prime[i]*prime[i]<=x;i++){
int p=0;
while(x%prime[i]==0){
++p;
x/=prime[i];
}
if(p){
counter_div*=(p+1);
long long number=1;
for(int j=0;j<p+1;++j)
number*=prime[j];
sum_div=(sum_div*((number-1)/(prime[i]-1)))&9973;
}
}
if(x>1){
counter_div*=2;
sum_div=(sum_div*((x*x-1)/(x-1)))%9973;
}
fout<<counter_div<<" "<<sum_div<<"\n";
}
return 0;
}