Cod sursa(job #2175807)

Utilizator AndrulianDin Iulian Andrulian Data 16 martie 2018 19:10:39
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
void nr_divizori(long long y)
{
    int d=2,e=0,nrdiv=1;
    long long t=1;
    while(y!=1)
    {
        int f=1;
        e=0;
        while(y % d==0)
        {
            ++e;
            y/=d;
            f=f*d;
            f++;
        }
        ++d;
        t=t*f;
        if(e) nrdiv=nrdiv * ( e + 1);
        if(y > 1  && d * d > y )
            break;
        // d = y;

    }
    if(y!=1)
    {
        nrdiv=nrdiv*2;
        t=(t*(y+1)%9973);
    }
    fout<<nrdiv%9973<<" "<<t%9973<<"\n";
}
int i,t;
/*
int suma_divizori(long long y)
{
    long long s=1+y;
    for(i= 2;  i<= sqrt(y); i++)
    {
        if(y % i== 0)
        {
            if(i * i == y )
                s=s + i;
            else s=s+ i+ y/i;
        }
    }
    return (s%9973);
}*/
long long x;
int main()
{
    fin>>t;
    while(t--)
    {
        fin>>x;
        nr_divizori(x);

    }
    return 0;
}