Cod sursa(job #1800260)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 7 noiembrie 2016 17:00:20
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
# include <iostream>
# include <fstream>

# include <string>

using namespace std;

int pow( int b, int p )
{
    int r = 1;

    while ( p > 0 ) {
        if ( p & 1 )
            r = r * b % 10;

        p /= 2;
        b = b * b % 10;
    }

    return r;
}

int main()
{
    ifstream fin( "cifra.in" );
    ofstream fout( "cifra.out" );

    int n, k, x, s, t, i;
    string str;

    t = 0;
    for ( i = 1; i <= 20; i ++ )
        t = ( t + pow( i, i ) ) % 10;

    fin >> n;

    for ( k = 0; k < n; k ++ ) {
        fin >> str;

        x = 0;
        for ( i = 0; i < str.size(); i ++ )
            x = ( x * 10 + str[i] - '0' ) % 2000;

        s = x / 20 * t % 10;
        for ( i = 1; i <= x % 20; i ++ )
            s = ( s + pow( i, i ) ) % 10;

        fout << s << '\n';
    }

    fin.close();
    fout.close();

    return 0;
}