Cod sursa(job #2035516)

Utilizator Eduard24Eduard Scaueru Eduard24 Data 9 octombrie 2017 16:17:17
Problema Suma si numarul divizorilor Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

long long d,n,p,s,nr_divizori,x,m,t,i;

int main()
{
    fin>>t;
    for(i=1;i<=t;i++)
    {
        fin>>n;
        d=2;
        s=1;
        nr_divizori=1;
        m=n;
        while(n>=d*d)
        {
            p=0;
            x=1;
            while(n%d==0)
            {
                p++;
                n=n/d;
                x=x*d;
            }
            nr_divizori=nr_divizori*(p+1);
            s=s*((x*d-1)/(d-1));
            if(p!=0) m=m/d*(d-1);
            d++;
        }
        if(n>1)
        {
            nr_divizori=nr_divizori*2;
            s=s*(n+1)%9973;
            m=m*(n-1);
        }
        fout<<nr_divizori<<" "<<s<<"\n";
    }
    return 0;
}