Cod sursa(job #1300460)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 24 decembrie 2014 14:39:49
Problema Cifra Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <string.h>
#include <iostream>
using namespace std;

#define ull unsigned long long

ull pow(ull base, ull power, ull modulus);

int main()
{
    int T, i;
    char N[101];
    int a[100];
    a[0] = 0;
    for (i = 1; i < 100; i++)
        a[i] = (a[i - 1] + pow(i, i, 10)) % 10;

    int nr;
    ifstream f("cifra.in");
    ofstream g("cifra.out");
    f >> T;

    for (i = 0; i < T; i++)
    {
        f >> N;
        if (strlen(N) > 1)
            nr = (N[strlen(N) - 2] -'0') * 10 + (N[strlen(N) - 1] - '0');
        else
            nr = N[strlen(N) - 1] - '0';
        g << a[nr % 100] << '\n';
    }

    f.close();
    g.close();
    return 0;
}

ull pow(ull base, ull power, ull modulus)
{
    ull result = 1;

    while (power > 0)
    {
        if (power & 1)
            result = ((result % modulus) * (base % modulus)) % modulus;
        power >>= 1;
        base = ((base % modulus) * (base % modulus)) % modulus;
    }

    return result;
}