Cod sursa(job #1319589)

Utilizator Adryan199Adrian Argint Adryan199 Data 17 ianuarie 2015 10:37:52
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main ()
{
    long long t,a,c,s,i,j,m,d,e,p,x,y,z;
    m=9973;
    fin>>t;
    for(i=1; i<=t; i++)
    {
        fin>>a;
        c=1;
        s=1;
        x=a;
        d=2;
        while(d*d<=x)
        {
         if(x%d==0)
         {
          e=0;
          while(x%d==0)
          {
              e=e+1;
              x=x/d;
          }
          c=c*(e+1);
          p=1;
          y=d;
          z=e+1;
          while(z!=0)
          {
              if(z%2==1)
              {
                  p=(p*y)%m;

              }
              y=(y*y)%m;
              z=z/2;
          }
          s=(s*(p+1)/(d-1))%m;
         }
         d=d+1;
        }
         if(x>1)
         {
             c=c*2;
             s=(s*(x+1))%m;

         }
        fout<<c<<" "<<s<<"\n";
    }
    fin.close();
    fout.close();
    return 0;
}