Cod sursa(job #2246002)

Utilizator XDDDDariusPetean Darius XDDDDarius Data 26 septembrie 2018 13:43:29
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <math.h>
#define MOD 9973

std::ifstream in("ssnd.in");
std::ofstream out("ssnd.out");

using namespace std;
long long t,n;
void div(long long k,long long &a,long long &b)
{
    long long p=2,numar,nrdiv=1,prod=1,aux=1,ink=k;
    while(k>1)
    {
        if(k==ink && p>sqrt(k))
        {
            a=2;
            b=ink+1;
            return;
        }
        numar=0;
        aux=p;
        while(k%p==0)
        {
            numar++;
            k/=p;
            aux*=p;
        }
        if(k%p)
        {
            nrdiv*=(numar+1);
            prod*= ((( (aux-1))%MOD)/(p-1) );

        }
        p++;
    }
    a=nrdiv;
    b=prod;

}


int main()
{
    in>>n;
    for(int i=0; i<n; i++)
    {
        long long a,b;
        in>>t;
        div(t,a,b);
        out<<a<<" "<<b<<"\n";
    }
    return 0;
}