Cod sursa(job #2508221)

Utilizator RamanujanNeacsu Mihnea Ramanujan Data 11 decembrie 2019 19:26:59
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;
int sEuler(int n)
{
   int total=1;
   for(int i=2; (i*i<=n&&n>1); i++)
   {
      int suma=1, temp=1;
      while(n%i==0)
      {
         temp*=i;
         suma=suma+temp;
         n/=i;
      }
      total*=suma;
   }
   if(n>=2)
      total=total*(n+1);
   return total;
}
int nEuler(int n)
{
   int drp=1;
   for(int i=2; (i*i<=n&&n>1); i++)
   {
       int p=0;
       while(n%i==0)
       {
          n/=i;
          p++;
       }
       drp=(drp*(p+1))%9973;
   }
   if(n>1)
     drp=(2*drp)%9973;
   return drp;
}
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{
    int n, t; fin>>t;
    for(int drp=0; drp<t; drp++)
    {
        fin>>n;
        fout<<sEuler(n)<<" "<<nEuler(n)<<endl;
    }
    fin.close();
    fout.close();
    return 0;
}