Cod sursa(job #407017)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 1 martie 2010 23:15:16
Problema Suma si numarul divizorilor Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <algorithm>
using namespace std;

#define INF 1<<32
#define MOD 9973

typedef long long int int_64;

int T;
int_64 N;
int_64 nr_div, sum_div;

void solve() {

    int i;

    scanf( "%lld", &N );

    nr_div = 0;
    sum_div = 0;

    for( i = 1; (int_64)i * i < N; ++i )
        if( N % i == 0 ) {

            nr_div += 2;
            sum_div += i + N/i;

            if( sum_div > (int_64)INF )
                sum_div = sum_div % MOD;
        }
    if( N % (i*i) == 0 ) {

        ++nr_div;
        sum_div += i*i;

        if( sum_div > (int_64)INF )
            sum_div = sum_div % MOD;
    }
    sum_div = sum_div % MOD;

    printf( "%lld %lld\n", nr_div, sum_div );
}

int main() {

    freopen( "ssnd.in", "r", stdin );
    freopen( "ssnd.out", "w", stdout );

    scanf( "%d", &T );

    while( T-- )
        solve();

    return 0;
}