Cod sursa(job #2127456)

Utilizator deiubejanAndrei Bejan deiubejan Data 10 februarie 2018 17:51:43
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <cmath>
using namespace std;

unsigned long long n,i,x,j,expo,iexp,nrd,sumad;
int main()
{
    cin>>n;
    for(j=1; j<=n; j++){
        sumad=1;
        nrd=1;
        i=2;
        cin>>x;
        while(x>1){
            iexp=1;
            expo=0;
            if(i>sqrt(x))
                i=x;
            while(x%i==0){
                x=x/i;
                expo++;
                iexp=iexp*i;
                if(x%i!=0){
                    iexp=iexp*i;
                    expo++;
                }
            }
            if(expo!=0)
                nrd=nrd*expo;
            if(iexp!=1)
                sumad=sumad*(iexp-1)/(i-1);
            if(i==2)
                i=3;
            else
                i=i+2;
        }
        cout<<nrd<<" "<<sumad<<"\n";
    }

    return 0;
}