Cod sursa(job #2482673)

Utilizator Florinos123Gaina Florin Florinos123 Data 28 octombrie 2019 18:35:11
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <cmath>
#define mod 9973

using namespace std;

ifstream f("ssnd.in");
ofstream g("ssnd.out");
void divizori(int n, int &suma, int &nr)
{
    suma=nr=1;
    int d=2,p=0,k;
    while(n>1)
    {
        p=0;
        k=d;
        while(n%d==0)
        {
            k=(1LL*k*d)%mod;
            p++;
            n=n/d;
        }
        if(p>0)
        {
            nr=nr*(p+1);
            k--;
            suma=(1LL*suma*(k/(d-1)))%mod;
        }
    if(d==2)
        d++;
    else
        d=d+2;
    if(n>1 && d*d>n)
        d=n;
    }
    g<<nr<<" "<<suma<<endl;

}

int main()
{
    int n,i,x,nr,suma;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>x;
        divizori(x,nr,suma);
    }



    return 0;
}