Cod sursa(job #2256460)

Utilizator rnqftwcalina florin daniel rnqftw Data 8 octombrie 2018 17:46:39
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include<bits/stdc++.h>

using namespace std;

#define MOD 9973

bool prim[1000100];

int main(){
    ifstream in ("ssnd.in");
    ofstream out ("ssnd.out");

    for(long long i = 2 ; i <= 1000000 ; i ++){
        if(prim[i] == 0){
            for(long long j = i*i ; j <= 1000000 ; j += i)
                prim[j] = 1 ;
        }
    }

    vector<long long> a;

    for(long long i = 2 ; i <= 1000000 ; i ++)
        if(prim[i] == 0)
            a.push_back(i);

    int t , n ;
    in >> t;

    while(t--){
        in >> n ;
        vector<long long>::iterator it = a.begin();
        int exponent = 0;
        int power = 1 , sum = 1 , no = 1;
        while(n != 1 ){
            while(n % (*it) == 0){
                power *= *it;
                exponent ++;
                n /= *it;
                cout << exponent << " " << power ;
            }

            no *= (exponent + 1);
            sum = sum * ((power * (*it) - 1)/ ( (*it) - 1));
            it++;
            power = 1 ;
            exponent = 0 ;

        }
        out << no <<" " << sum <<endl;
    }

}