【bzoj2659】[Beijing wc2012]算不出的算式 数论
题目描述
求,其中p和q是奇质数。
输入
只有一行,两个奇质数,分别表示p,q。
输出
一个数,表示算式结果。
样例输入
5
样例输出
6
题解
数论
神TM数学结论题。。。
当$p\neq q$时,考虑其几何意义:前面的那个式子是直线$y=\frac qpx$在$x\in [1,\frac{p-1}2]$范围内下方的点数,而后面的恰好是左方的点数。由于直线上显然没有点,因此表示出来就是矩形中的点的个数$\frac{p-1}2·\frac{q-1}2$。
当$p=q$时直接使用等差数列求和公式计算,答案为$\frac{(p-1)(p+1)}4$
#include <cstdio> int main() { long long p , q; scanf("%lld%lld" , &p , &q); if(p == q) printf("%lld\n" , (p - 1) * (p + 1) >> 2); else printf("%lld\n" , (p - 1) * (q - 1) >> 2); return 0; }