Cod sursa(job #2641779)

Utilizator stefantagaTaga Stefan stefantaga Data 12 august 2020 17:51:40
Problema Descompuneri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("desc.in");
ofstream g("desc.out");
vector <pair <long long,long long> > v;
long long fact[21],n,m,i,d,numar,maxim,suma;
long long numarmoduri (long long nr)
{
    int i;
    long long exponent,valoare=1;
    for (i=0;i<v.size();i++)
    {
        exponent=v[i].second;
        valoare=(valoare*fact[exponent+nr-1])/(fact[exponent]*fact[nr-1]);
    }
    return valoare;
}

int main()
{
    f>>n>>m;
    fact[0]=1;
    for (i=1;i<=20;i++)
    {
        fact[i]=fact[i-1]*i;
    }
    d=2;
    while (d*d<=n&&n!=1)
    {
        numar=0;
        while (n%d==0)
        {
            numar++;
            n=n/d;
        }
        if (numar!=0)
        {
            v.push_back({d,numar});
        }
        d++;
    }
    if (n!=1)
    {
        v.push_back({d,1});
    }
    for (i=0;i<v.size();i++)
    {
        maxim=max(maxim,v[i].second);
    }
    for (i=2;i<=maxim;i++)
    {
        suma=suma+numarmoduri(i);
    }
    g<<suma;
    return 0;
}