Pagini recente » Cod sursa (job #1255772) | Cod sursa (job #2962777) | Cod sursa (job #660066) | Cod sursa (job #3229533) | Cod sursa (job #639870)
Cod sursa(job #639870)
#include <fstream>
#include <cmath>
using namespace std;
bool v[1000001]={1};
void ciur()
{
for(int i=3;i<=1000000;i+=2)
v[i]=1;
for(int i=3;i<=1000000;i+=2){
if(v[i]==1){
for(int j=2*i; j<=1000000; j+=i)
v[j]=0;}}
}
int main()
{
long long nr, sum, n, x, t, i, j, exp, aux;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
ciur();
fin>>n;
for(j=1;j<=n;j++){
fin>>x;
aux=sqrt((float)x);
nr=sum=1;
for(i=3; x!=1 && i<=aux ;i+=2){
if(v[i]==0 || x%i!=0)
continue;
exp=1;
t=i;
while(x%i==0){
exp++;
x=x/i;
t=t*i;}
nr*=exp;
sum*=(t-1)/(i-1);
}
if(x%2==0){
exp=1;
t=2;
while(x%2==0){
exp++;
x=x/2;
t=t*2;}
nr*=exp;
sum*=(t-1);}
if(x!=1){
sum*=(x*x-1)/(x-1);
nr*=2;}
sum=sum%9973;
fout<<nr<<' '<<sum<<endl;}
return 0;
}