Cod sursa(job #2474173)

Utilizator Florinos123Gaina Florin Florinos123 Data 14 octombrie 2019 19:51:04
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <cmath>
#include <fstream>


using namespace std;
long long divizori(long n)
{
    long d=2,p=0,x=1,s=1;
    while(n>1)
    {
        p=0;
        while(n%d==0)
        {
            p++;
            n=n/d;
        }
        if(p>0)
        x=x*(p+1);


        if(d==2)
            d++;
        else
            d=d+2;
    }
    return x;
}
long long suma(long long n)
{
   long i,s=0;
   for(i=1;i*i<=n;i++)
   {
       if(n%i==0)
       {
           s=s+i;
           if(i*i<n)
            s=s+(n/i);
       }
   }
   return s;
}
int main()
{
long long n,i,x;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
f>>n;
for(i=1;i<=n;i++)
{
    f>>x;
    g<<divizori(x)<<" "<<suma(x)<<endl;
}



    return 0;
}