Cod sursa(job #1396664)

Utilizator AndreiD31Dragan Andrei AndreiD31 Data 22 martie 2015 20:14:58
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;
long long n,i,s,j,p1,d,x,fr,p,nr1=1,a[1000001];
int main()
{ifstream f("ssnd.in");
ofstream g("ssnd.out");
   f>>n;
   for(d=2;d*d<=1000001;d++)
   {if(a[d]==0)
    {for(i=d*d;i<=1000001;i=i+d)
       a[i]=1;
    }
   }
   for(i=1;i<=n;i++)
   {f>>x;
   fr=2;s=1;
   nr1=1;
   while(x>1&&fr*fr<=x)
   {p=0;
    if(a[fr]==0)
   {p1=1;
    while(x%fr==0){x=x/fr;p++;}}
   for(j=1;j<=p+1;j++){p1=p1*fr;}
   s=s*((p1-1)/(fr-1));
   nr1=nr1*(p+1);
   fr++;
   }

   if(x>1){nr1=nr1*2;s=s*((x*x-1)/(x-1));}
   g<<nr1<<" "<<s<<'\n';
   }

    return 0;
}