Cod sursa(job #3301964)

Utilizator vectordefrecventaCozma Victor Sebastian vectordefrecventa Data 1 iulie 2025 18:52:24
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <cmath>
using namespace std;

ifstream cin ("ssnd.in");
ofstream cout("ssnd.out");

long long v[3];

void nrdiv(int a){
    long long d=2, exp=0, nrdivi=1, put, sum=1;
    while(a > 1) {
        if(a % d == 0) {
            exp = 0;
            while(a % d == 0) {
                exp++;
                a/=d;
            }
            //cout<<" "<<d<<" "<<exp<<" "<<a<<endl;
            nrdivi*=(exp+1);
            put=(pow(d,exp+1)-1)/(d-1);
            sum*=put;
        }
        if (d > 2){
            d++;
        }
        d++;
        if (a > 1 && d*d > a){
            d=a;
            //cout<<"a "<<a<<" a"<<endl;
        }
    }
    v[2]=nrdivi;
    v[1]=sum;
}

int main(){
    int n, x;
    cin>>n;
    for (int i=1; i<=n; i++){
        cin>>x;
        nrdiv(x);
        cout<<v[2]<<" "<<v[1]<<endl;
    }

    return 0;
}