Cod sursa(job #2482678)

Utilizator Florinos123Gaina Florin Florinos123 Data 28 octombrie 2019 18:44:59
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#define mod 9973;

using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int sumdiv(long long n)
{
    int numar=1,rez=1,suma=1,i;
    for(i=2;i*i<=n;i++)
    {
        numar=1;
        suma=1;
        while(n%i==0)
        {
            numar=(1LL*numar*i)%mod;
            suma=(1LL*suma+numar)%mod;
            n=n/i;
        }
        rez=(1LL*rez*suma)%mod;
    }
    if(n>=2)
        rez=(1LL*rez*(n+1))%mod;
    return rez;
}
int nrdiv(long long n)
{
    int nrd=1,d=2,p=0;
    while(n>1)
    {
        p=0;
        while(n%d==0)
        {
            p++;
            n=n/d;
        }
        if(p>0)
            nrd=nrd*(p+1);
        if(d==2)
            d++;
        else
            d=d+2;
        if(n>1 && d*d>n)
            d=n;
    }
    return nrd;
}
int main()
{
int n,i;
long long x;
f>>n;
for(i=1;i<=n;i++)
{
    f>>x;
    g<<nrdiv(x)<<" "<<sumdiv(x)<<endl;
}
    return 0;
}