Cod sursa(job #2740488)

Utilizator DragosC1Dragos DragosC1 Data 13 aprilie 2021 12:49:54
Problema Cifra Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <iostream>
#include <cstring>
using namespace std;

char s[101];
int rez;
int v[101];

ifstream f;
ofstream g;

const int MOD = 101, MOD2 = 10;

int exp(int a, int b) {
    int P = 1;
    while (b) {
        if (b % 2 != 0) 
            P = (P * a) % MOD2;
        a = (a * a) % MOD2;
        b /= 2;
    }
    return P;
}

void precalc() {
    int i, sum = 0;
    for (i = 1; i <= 100; i++) {
        sum = (sum + exp(i, i)) % MOD2;
        v[i] = sum;
    }
}

void solve() {
    int i, n, nr = 0, sum;
    f >> s;
    n = strlen(s);
    for (i = 0; i < n; i++) {
        nr = nr * 10 + (s[i] - 48);
        nr = nr % MOD;
    }
    g << v[nr] << '\n';
}


int main() {
    int t;
    precalc();
    f.open("cifra.in");
    g.open("cifra.out");
    f >> t;
    while (t--)
        solve();
    f.close();
    g.close();
    return 0;
}