Cod sursa(job #2587102)

Utilizator sulzandreiandrei sulzandrei Data 22 martie 2020 00:20:14
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <utility>
#include <cstring>
#include <bitset>
#include <vector>
using namespace std;

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

#define ull unsigned long long int
#define mod 9973
void work(ull n){
    ull Sdiv=1;
    ull Ndiv=1;
    for(ull i = 2; i*i <=n ; i++){
        if(n%i ==0 ) {
            ull ndiv=i;
            ull nr=1;
            while(n%i==0){
                nr++;
                n /=i;
                ndiv *=i%mod;
            }

            Ndiv*=nr%mod;
            Sdiv*=((ndiv-1)/(i-1))%mod;
        }
    }
    if(n >1) {
        Sdiv*=(n*n-1)/(n-1)%mod;
        Ndiv*= 2;
    }
    out<<Ndiv<<" "<<Sdiv%mod<<'\n';
}


int main ( )
{
    ull n,t;
    in>>t;
    while(t--){
        in>>n;
         work(n);

    }

    return 0;
}