Cod sursa(job #3224695)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 15 aprilie 2024 20:22:52
Problema Suma si numarul divizorilor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, i, e, div;
    long long x, d, sum, prod;
    ifstream fin( "ssnd.in" );
    ofstream fout( "ssnd.out" );
    fin >> n;
    for( i = 0; i < n; i++ ){
        fin >> x;
        d = 2;
        div = 1;
        sum = 1;
        while( d * d <= x ){
            if( x % d == 0 ){
                e = 0;
                prod = d;
                while( x % d == 0 ){
                    prod *= d;
                    x /= d;
                    e++;
                }
                div *= ( e + 1 );
                sum = ( sum * ( prod - 1 ) / ( d - 1 ) ) % 9973;
            }
            d++;
        }
        if( x > 1 ){
            div *= 2;
            sum = ( sum * ( x * x - 1 ) / ( x - 1 ) ) % 9973;
        }
        fout << div << ' ' << sum << '\n';
    }
    return 0;
}