Cod sursa(job #3224716)

Utilizator bogdan1479Luca Bogdan Alexandru bogdan1479 Data 15 aprilie 2024 21:34:46
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define QED fin.close(); fout.close(); return 0;
using namespace std;
ifstream fin("cifra.in");
ofstream fout("cifra.out");
#define cin fin
#define cout fout
const int XMAX = 102;

int restlaputere(int a, int p, int MOD)
{
    if(a == 0)
        return 0;
    int val = 1, x = a % MOD;
    while(p > 0)
    {
        if(p % 2 != 0)
            val = val * x % MOD;
        x = x * x % MOD;
        p /= 2;
    }
    return val;
}

int main()
{
    int t;
    cin >> t;
    while(t--)
    {
        int lung, uc2, s = 0, s1, s2;
        s1 = 9;
        s2 = 7;
        char x[XMAX];
        cin >> x;
        lung = strlen(x);
        if(lung == 1)
            uc2 = x[0] - '0';
        else
            uc2 = (x[lung - 2] - '0') * 10 + (x[lung - 1] - '0');
        if(uc2 != 0)
            s = uc2 / 20 * (s1 + s2) % 10;
        else
            s = 5 * (s1 + s2) % 10;
        uc2 %= 20;
        for(int i = 1; i <= uc2; i++)
            s = (s + restlaputere(i, i, 10)) % 10;
        cout << s << '\n';
    }
    QED
}