1803: 2016
Description
给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:
1. 1≤a≤n,1≤b≤m;
2. a×b 是 2016 的倍数。
Input
输入包含不超过 30 组数据。
每组数据包含两个整数 n,m (1≤n,m≤109).
Output
对于每组数据,输出一个整数表示满足条件的数量。
Sample Input
32 63
2016 2016
1000000000 1000000000
Sample Output
1
30576
7523146895502644
HINT
题解:
计算mod2016后 每对i,j对答案的贡献
#include<bits/stdc++.h>
using namespace std; #pragma comment(linker, "/STACK:102400000,102400000")
#define ls i<<1
#define rs ls | 1
#define mid ((ll+rr)>>1)
#define pii pair<int,int>
#define MP make_pair typedef long long LL;
const long long INF = 1e18;
const double Pi = acos(-1.0);
const int N = 2e5+, M = 1e6+, mod = 1e6+, inf = ; int n,m;
int main() {
while(scanf("%d%d",&n,&m)!=EOF) {
LL ans = ;
for(int i = ; i <= ; ++i) {
for(int j = ; j <= ; ++j) {
LL fi , se;
fi = n / ;
if( i && n%>=i) {fi++;}
se = m / ;
if(j && m%>=j) se++;
if(i*j % == ) ans += fi*se;
}
}
cout<<ans<<endl;
}
return ;
}