Cod sursa(job #1260404)

Utilizator dezenStefan Brasoveanu dezen Data 11 noiembrie 2014 11:23:09
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<cstdio>
#include<cmath>
using namespace std;
long long n,i,v[100000],a,d,e,nrdiv=1,q,s=1,cn;
int main()
{
    freopen("ssnd.in","r",stdin);
    freopen("ssnd.out","w",stdout);
    scanf("%lld",&n);
    for(i=0;i<n;i++)
    {
        scanf("%lld",&v[i]);
        cn=v[i];
        a=sqrt((double)cn);
        d=2;
        while(cn>1&&d<=a)
        {
            e=0;
            while(cn%d==0)
            {
                e++;
                cn/=d;
            }
            //d la puterea e
            nrdiv*=(e+1);
            q=pow(d,e+1);
            s*=(q-1)/(d-1);
            d++;
        }
        if(cn>1)
        while(cn>1)
        {
            e=0;
            while(cn%d==0)
            {
                e++;
                cn/=d;
            }
            //d la puterea e
            nrdiv*=(e+1);
            q=pow(d,e+1);
            s*=(q-1)/(d-1);
            d++;
        }
        printf("%lld %lld\n",nrdiv,s);
        nrdiv=s=1;
    }
    return 0;
}