1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const int maxn=3000;
5
6 /*
7 n m <=1e9
8 a*b=2016p (0<a<=n 0<b<=m)
9 的组合有多少个
10 那么也就是a*b%2016=0%2016
11
12 那么只要枚举2016*2016个就好了
13 */
14
15 ll cnt1[maxn],cnt2[maxn];
16
17 void solve(int n,ll c[]){
18 int a=n/2016,b=n%2016;
19 for(int i=1;i<=b;i++)c[i]=a+1;
20 for(int i=b+1;i<=2016;i++)c[i]=a;
21 }
22
23 int main(){
24 ll n,m;
25
26 while(cin>>n>>m){
27
28 solve(n,cnt1);
29 solve(m,cnt2);
30
31 ll res=0;
32
33 for(int i=1;i<=2016;i++)for(int j=1;j<=2016;j++)
34 if((i*j%2016)==0){
35 res+=cnt1[i]*cnt2[j];
36 }
37 cout<<res<<endl;
38 }
39 return 0;
40 }