Cod sursa(job #1237720)

Utilizator delia_99Delia Draghici delia_99 Data 4 octombrie 2014 18:42:28
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,n,i,p,fct,s,nr,m,j,d[50000];
bool prim[1000005];
void ciur()
{
    long long i,j;
    m=0;
    for(i=2; i<=1000000; i++)
        if(!prim[i])
        {
            d[++m]=i;
            for(j= i * i; j<=1000000; j+=i)

                prim[j]=true;
        }
    return;


}

int main()
{
    f>>t;
    ciur();
    for(i=1; i<=t; i++)
    {
        f>>n;
        s=1;
        nr=1;
        j=1;
        while(n>1&&j<=m)
        {
            p=0;
            fct=d[j];
            while(n%d[j]==0)
            {
                p++;
                fct*=d[j];
                n/=d[j];
            }
            nr*=(p+1);
            if (p>0) s*=(fct-1)/(d[j]-1)%9973;
            j++;
        }
        g<<nr<<" "<<s<<'\n';
    }

    return 0;
}