Cod sursa(job #1245908)

Utilizator SanduStefaniaSandu Stefania Iulia SanduStefania Data 20 octombrie 2014 10:58:06
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long t,n,i,nrd,sd,d,ft,ex;
int main()
{
    f>>t;
    for (i=1; i<=t; i++)
    {
        f>>n;
        long long nn=n;
        nrd=1;
        sd=1;
        for (d=2; d*d<=nn; d++)
        {
            ex=0;
            ft=d;
            while (n%d==0)
            {
                ex ++;
                ft = ft*d;
                n = n/d;
            }
            nrd = nrd*(ex+1);
            if(ex) sd=sd*(ft-1)/(d-1);
        }
        if (n!=1)
        {
            nrd=nrd*2;
            sd=sd*(n*n-1)/(n-1);
        }
        g<<nrd<<" "<<sd%9973<<'\n';
    }
    return 0;
}