#include <iostream>
#include <boost/preprocessor/repetition/enum.hpp>
#define MODER 10
template<int a, int n> struct pow
{
static const int value = a * pow<a, n-1>::value % MODER;
};
template<int a> struct pow<a, 0>
{
static const int value = 1;
};
#define ORDER(count, i, data) pow<data,i>::value
int main() {
const int p = 3;
int const a[] = { BOOST_PP_ENUM(10, ORDER, p) };
std::size_t const n = sizeof(a)/sizeof(int);
for(std::size_t i = 0 ; i != n ; ++i )
std::cout << a[i] << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Ym9vc3QvcHJlcHJvY2Vzc29yL3JlcGV0aXRpb24vZW51bS5ocHA+CgojZGVmaW5lIE1PREVSIDEwCgp0ZW1wbGF0ZTxpbnQgYSwgaW50IG4+IHN0cnVjdCBwb3cKewogIHN0YXRpYyBjb25zdCBpbnQgdmFsdWUgPSBhICogcG93PGEsIG4tMT46OnZhbHVlICUgTU9ERVI7Cn07CnRlbXBsYXRlPGludCBhPiBzdHJ1Y3QgcG93PGEsIDA+CnsKICBzdGF0aWMgY29uc3QgaW50IHZhbHVlID0gMTsKfTsKICAgIAojZGVmaW5lIE9SREVSKGNvdW50LCBpLCBkYXRhKSBwb3c8ZGF0YSxpPjo6dmFsdWUKCmludCBtYWluKCkgewogIGNvbnN0IGludCBwID0gMzsKICBpbnQgY29uc3QgYVtdID0geyBCT09TVF9QUF9FTlVNKDEwLCBPUkRFUiwgcCkgfTsKICBzdGQ6OnNpemVfdCBjb25zdCBuID0gc2l6ZW9mKGEpL3NpemVvZihpbnQpOwogIGZvcihzdGQ6OnNpemVfdCBpID0gMCA7IGkgIT0gbiA7ICsraSApIAogICAgc3RkOjpjb3V0IDw8IGFbaV0gPDwgIlxuIjsKICByZXR1cm4gMDsKfQ==