湖南省第十二届大学生计算机程序设计竞赛 A 2016

时间:2022-06-25 08:38:05

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 ;
}