C题 最大模数
(a-1) + (a+1) = 2a
(a-1)^2 + (a+1)^2 = 2a^2+2
(a-1)^3 + (a+1)^3 = 2a^3+6a
(a-1)^4 + (a+1)^4 = 2a ^4 + 12a^2 + 2
(a-1)^5 + (a+1)^5 = 2a^5 + 20a^3 + 10a
可知当n为偶数时对a^2求余都为2,只求n为奇数的时候,对n为奇数的情况,结果为2 * n * a,此时问题转化为 求2 * n * a %
( a² ) 的最大值。 初步判断,知道2 * n * a = a² 时n的取值,把n-1代入上式,结果就是最大值。 进一步,通过化简2 *
n * a = a² ,可以得到 n = a / 2。 故需要再考虑a的奇偶性: ①、当 a 为奇数的时候 由于 2 * n * a = 2
- (a / 2) * a < a² , 所以不需要取n-1,此时Ra就是最大模数了。 最大模数就是 2 * ( a - 1 ) / 2 * a = a² - a 。 ②、当 a 为偶数的时候 由于 2 * n * a = 2 * (a / 2) * a = a² , 此时Ra =
0,所以取n-1,即n = a / 2 - 1。 最大模数就是 2 * a * ( a / 2 - 1 ) = a² - 2 * a 。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <set>
using namespace std;
typedef long long ll;
ll a;
int main(){
while(~scanf("%lld",&a)){
if(a&1) printf("%lld\n",a*a-a);
else printf("%lld\n",a*a-2*a);
}
return 0;
}