Cod sursa(job #3302386)

Utilizator MXelAMocanu Alexandru-Matei MXelA Data 7 iulie 2025 11:28:59
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");

int t;

int main()
{
    fin>>t;
    int i;
    long long n,suma=1,nrd=1,x,k;
    for(i=1;i<=t;i++)
    {
        suma=1;
        nrd=1;
        fin>>n;
        if(n%2==0)
        {
            k=1;
            x=2;
            while(n%2==0)
            {
                n/=2;
                k++;
                x*=2;
            }
            x--;
            suma*=x;
            nrd*=k;

        }
        for(i=3;i*i<=n;i+=2)
        {
            if(n%i==0)
            {
                k=1;
                x=i;
                while(n%i==0)
                {
                    n/=i;
                    k++;
                    x*=i;
                }
                x--;
                x/=(i-1);
                suma*=x;
                nrd*=k;
            }
        }
        if(n>1)
        {
            k=2;
            x=(n*n-1)/(n-1);
            suma*=x;
            nrd*=k;
        }
        fout<<nrd<<" "<<suma<<'\n';
    }
    return 0;
}