Cod sursa(job #2456779)

Utilizator R3v1v3RAlexe Paul R3v1v3R Data 15 septembrie 2019 14:22:43
Problema Suma si numarul divizorilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int ciur[1000001];
int main()
{
    int n,i,j,k,nr,cnt,p,d,mult;
    long long card = 0,suma = 0;
    fin>>nr;
        for(i=1; i<=nr; i++)
        {
            suma = 1;
            card = 1;
            fin>>n;
            d = 2;
            while(n > 1)
            {
                p = 0;
                mult = 1;
                while(n % d == 0)
                {
                    ++p;
                    n /= d;
                    mult = mult * d;
                }
                if(p)
                   {
                       card = card * (p+1);
                       suma *= ((mult * d -1) / (d-1));
                       suma %= 9973;
                   }
                ++ d;
                if(n>1 && d * d > n)
                {
                    d = n;
                }
            }
            fout<<card<<' '<<suma%9973<<'\n';
        }
    }