根据1~n的平方和:
有 n*(n+1)*(2*n+1)/6;
推同余方程: (a*b)%d==(a%d+b%d)%d;
Description
给你两个数n和m,求从6开始到6*n的等差数列(差值为6)的每一项的平方的和除6模m的值
(例如n=2,m=3,所求的就是6的平方加上12的平方的和模3所得到的值)
Input
输入数据有多组,每组占一行,有两个整数,之间有空格。
(0<a,b<2147483648)
(0<a,b<2147483648)
Output
对于每组输入数据,输出一行.
Sample Input
6 1000 88 100
Sample Output
546 64
AC代码:
#include <iostream>
using namespace std;
typedef long long ll;
int main (void)
{
ll a;
ll b;
while (cin>>a>>b)
{
cout<<a%b*(a%b+1)*(2*a%b+1%b)%b<<endl;
}
return 0;
}