https://atcoder.jp/contests/abc133/tasks/abc133_c
思路:由于L,R区间太大,所以不能暴力枚举。由于求(i*j)%2019的最小值,那么2019的倍数对2019求余则为零。
1.如果L/2019和R/2019一样说明,L和R之间没有2019的倍数,那么这种情况下,可以在L到R之间进行枚举
2.如果L/2019和R/2019不一样说明,L和R之间存在2019的倍数,则输出0
题解:
#include <iostream> using namespace std; int main() { long long l,r;; cin >> l >> r; if(l/2019!=r/2019) cout << 0 << endl; else { long long ans=999999999; for(long long i=l;i<=r;i++) { for(long long j=i+1;j<=r;j++) { ans=min(i*j%2019,ans); } } cout << ans << endl; } return 0; }