NOJ——1658平方和(自然数平方和公式和取模法则)
-
[1658] 平方和
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描述
-
给你两个数n和m,求从6开始到6*n的等差数列(差值为6)的每一项的平方的和除6模m的值
(例如n=2,m=3,所求的就是6的平方加上12的平方的和模3所得到的值)
- 输入
-
输入数据有多组,每组占一行,有两个整数,之间有空格。
(0<a,b<2147483648) - 输出
-
对于每组输入数据,输出一行.
- 样例输入
-
6 1000 88 100
- 样例输出
-
546 64
无语,比赛的时候做起来感觉是有那么个平方和公式的意思,然而第一我只是见过,第二当时觉得并不存在- -|||,然后就没然后了..当时就放弃了..,其他嘛就知道下取模的运算法则即可(a*b)%c=(a%c * b%c)%c。
代码:
#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; }