Cod sursa(job #2203242)

Utilizator AndrulianDin Iulian Andrulian Data 11 mai 2018 17:28:54
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long sdv,nrdiv;

void suma_divizori(long long y, long long &nrdiv ,long long &sdv)
{


 int d=2,e=0;

long long p=1,p1=1,p2=1;
 nrdiv=1;
while(y!=1)
{
e=0;
        if(y%d==0)p=d;
while(y % d==0)
{
++e;
y/=d;
p=p*d;
}

if(e){p1=p1*(p-1);
              p2=p2*(d-1);
              }
if(e) nrdiv=nrdiv * ( e + 1);
        d++;
if(y > 1 && d * d > y )d = y;
}

   sdv=(p1/p2)%9973;
}
int i,t;






long long x;
int main()
{
fin>>t;
while(t--)
{
fin>>x;
suma_divizori(x,nrdiv, sdv);
       fout<<nrdiv<<" "<<sdv<<'\n';
}
return 0;
}