AtCoder Beginner Contest 133-C

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;
}
原文地址:https://www.cnblogs.com/wjc2021/p/11154171.html