Cod sursa(job #2539588)

Utilizator Nico10Nicola Andrei George Nico10 Data 5 februarie 2020 23:42:10
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

int t, i, j;
long long n;
bool ciur[1000];
void ciurul(){
    ciur[1]=1;
    for(i=2;i*i<=n;i++){
        if( !(ciur[i]) )
            for(j=2;j<=n/i;j++) ciur[j*i]=1;
    }
}

int main()
{
    long long suma, nrdiv=1, expo=0, baza;
    fin>>t;
    ciurul();
    for(i=0;i<t;i++){
        fin>>n;
        ///fout<<"\n\nn="<<n<<"\n";
        j=2;
        suma=1;
        nrdiv=1;
        while(n!=1){
        ///fout<<"j="<<j<<"\n";
        expo=0;
        if(n%j==0){
            baza=j;
            while(n%j==0){
                expo++;
                n/=j;
            }
            ///fout<<baza<<" "<<expo<<"\n";
            suma*=(pow(baza, expo+1)-1)/(baza-1);
        }
        nrdiv*=(expo+1);
        j++;
        }
        fout<<nrdiv<<" "<<9973%suma<<"\n";

    }
}