HDU6440(费马小定理)

其实我读题都懵逼……他给出一个素数p,让你设计一种加和乘的运算使得\[(m+n)^p = m^p+n^p\]
答案是设计成%p意义下的加法和乘法,这样:\[(m+n)^p\ \%\ p = m+n\]\[m^p\ \%\ p=m\]\[n^p\ \%\ p=n\]
所以\[(m+n)^p\ \%\ p=(m^p+n^p)\ \%\ p\]
直接输出就行了。

int T, p;

int main() {
    for (read(T); T; T--) {
        read(p);
        rep(i, 1, p) {
            rep(j, 1, p) {
                printf("%d ", (i + j - 2) % p);
            }
            puts("");   
        }
        rep(i, 1, p) {
            rep(j, 1, p) {
                printf("%lld ", (ll)(i - 1) * (j - 1) % p);
            }
            puts("");
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/AlphaWA/p/10668211.html