Cod sursa(job #1112007)

Utilizator profcntvProfCNTV profcntv Data 19 februarie 2014 12:34:00
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
# include <fstream>
# define M 9973
using namespace std;

ifstream f("ssnd.in");
ofstream g("ssnd.out");
int pow (int n, int m)
{
    int p = 1;
    while(m--)
    {
        p = (p% M * n% M) % M;
    }
    return p;
}
int main()
{
    int t, i, nr , s, d,e;
    long long n;
    f >> t;
    for(i=1; i<=t; ++i)
    {
       f >> n; nr=s=0;
       d = 2; nr = 1; s = 1;
       e = 0;
       while(n%d == 0)
       {
            n /= d;
            ++e;
       }
       if (e > 0)
       {
           nr = nr * (e+1);
           s = (s % M * (pow(d, e+1) - 1)/(d-1)  % M)  % M;
       }
       d = 3;
       while(n > 1)
       {
            e=0;
            while(n%d==0)
            {
                n /= d;
                ++e;
            }
            if (e>0)
            {
                nr = nr * (e+1);
                s = (s % M * (pow(d, e+1) - 1)/(d-1)  % M)  % M;
            }
            d += 2;
        }
        g << nr << " " << s <<"\n";
    }
    return 0;
}