小凯的疑惑
题目传送门
解题思路
这题就是一道数论
不妨设a<b
假设答案为 x
若 x ≡ m a ( m o d b ) ( 1 ≤ m ≤ b − 1 ) x≡ma (mod b)(1≤m≤b−1) x≡ma(modb)(1≤m≤b−1)
即 x = m a + n b ( 1 ≤ m ≤ b − 1 ) x=ma+nb(1≤m≤b−1) x=ma+nb(1≤m≤b−1)
显然当 n≥0 时 x 可以用 a,b 表示出来,不合题意。
因此当 n=−1 时 x 取得最大值,此时 x=ma−b。
显然当 m 取得最大值 b−1 时 x 最大,此时 x = ( b − 1 ) a − b = a b − a − b x=(b−1)a−b=ab−a−b x=(b−1)a−b=ab−a−b
因此 a,b 所表示不出的最大的数是 a b − a − b ab−a−b ab−a−b
上面的 ≡ 为 恒等号
恒等式
AC代码
#include<iostream>
#include<cstdio>
using namespace std;
long long a,b;
int main()
{
scanf("%lld%lld",&a,&b);
printf("%lld",a*b-a-b);//数论
}