Cod sursa(job #3151424)

Utilizator Federica361Martinut Federica Federica361 Data 21 septembrie 2023 11:29:49
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

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

#define cin fin
#define cout fout

long long nrdiv,sumdiv,n,i,x;

void qwe(int n)
{
    int k=0, x=1;
    while(n%2==0)
    {
        n/=2; k++;
        x*=2;
    }
    if(k!=0)
    {
        nrdiv*=(k+1);
        sumdiv*=(x*2-1);
    }
    for(int i=3;i<=n;i+=2)
    {
        k=0; x=1;
        while(n%i==0)
        {
            n/=i; k++;
            x*=i;
        }
        if(k!=0)
        {
            nrdiv*=(k+1);
            sumdiv*=((x*i-1)/(i-1));
        }
    }
}

int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>x;
        nrdiv=1; sumdiv=1;
        qwe(x);
        cout<<nrdiv<<" "<<sumdiv<<"\n";
    }
    return 0;
}