其实我读题都懵逼……他给出一个素数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;
}
原文地址:https://www.cnblogs.com/AlphaWA/p/10668211.html
时间: 2024-10-08 08:08:09