Cod sursa(job #2121625)

Utilizator andrei2707Andrei andrei2707 Data 3 februarie 2018 22:31:01
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <cmath>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long  sum=1,numberOfDivisors=1;
/*bool c[2000000];
void ciur(bool v[])
{
    c[1]=1;
    for(int i=3;i<=2000000;i+=2)
    {
        if(c[i]==0)
            for(int j=2*i;j<=2000000;j+=i)
                 c[j]=1;
    }
}*/
void divs(long long n)
{
    sum=1;numberOfDivisors=1;
    int i=2,power=0;
    long long n2=n;
    while(n>1)
    {
        power=0;
        while(n%i==0)
        {
            power++;
            n/=i;
        }
        if(power!=0)
        {
            numberOfDivisors*=(power+1);
            sum*=(pow(i,power+1)-1)/(i-1);
        }
        i++;
    }
    /*if(c[n2]==0&&n2%2!=0)
        sum++;*/
}
int main()
{
    int t;
    long long  n;
    fin>>t;
    //ciur(c);
    for(int i=0;i<t;i++)
    {
        fin>>n;
        divs(n);
        fout<<numberOfDivisors<<" "<<sum%9973<<'\n';
    }
    return 0;
}