Cod sursa(job #2737295)

Utilizator DeadFishEyesBratu Alin-Teodor DeadFishEyes Data 4 aprilie 2021 17:23:26
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;
ifstream f("ssnd.in");
ofstream o("ssnd.out");

int d[30], put[30];
int m;
int t, nr_div;
long long n, sum;
float sq;
int ciur[10];

int main()
{

    f >> t;
    for (int i = 0; i < t; i++){
        f >> n;
        m = 0;
        for (long long j = 2; n != 1; j++){
            if (n % j == 0){
                n = n / j;
                d[++m] = j;
                put[m] = 1;
                while(n % j == 0){
                    put[m]++;
                    n = n/j;
                }
            } else {
                if (j * j > n){
                    d[++m] = n;
                    put[m] = 1;
                    n = 1;
                }
            }
        }
        sum = 1;
        for (int j = 1; j <= m; j++){
            sum *= (pow(d[j],put[j]+1) - 1)/(d[j]-1);
        }
        nr_div = 1;
        for (int j = 1; j <= m; j++){
            nr_div *= (put[j] + 1);
        }
        o << nr_div << " " << sum << endl;
    }
    return 0;
}