Cod sursa(job #1558878)

Utilizator luca_robertaLuca Roberta luca_roberta Data 29 decembrie 2015 18:37:21
Problema Suma si numarul divizorilor Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <cstdio>

using namespace std;

int main()
{
    freopen("ssnd.in","r",stdin);
    freopen("ssnd.out","w",stdout);
    int T,n,nr,d,p,s,d1,aux;
    scanf("%d\n",&T);
    for (int i=1;i<=T;i++)
    {
        scanf("%d\n",&n);
        aux=n;
        nr=1;
        p=0;
        s=0;
        while (n%2==0)
        {
            p++;
            n/=2;
        }
        if (p>0)
            nr=nr*(p+1);
        d=3;
        while (d*d<=n)
        {
            p=0;
            while (n%d==0)
            {
                p++;
                n/=d;
            }
            if (p>0)
                nr=nr*(p+1);
            d+=2;
        }
        if (n>1)
            nr=nr*2;
        for(d1=1;d1*d1<aux;d1++)
            if(aux%d1==0)
                s=s+d1+aux/d1;
        if(d1*d1==n)
            s=s+d1;
        s=s%9973;
        printf("%d %d\n",nr, s);
    }
    return 0;
}