
就是如果(a - b) % m == 0,那么 a 和 b 模 m 同余
假设 a = 26, b = 20, a - b = 6
显然m可以取 1,2,3,6
带进去验证成立
一般来说对m的约束是 m >= 2,所以m可以取2,3,6。(m = 1是同余是显然的)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 9;
int n, m, k;
void work()
{
ll a, b;
cin >> a >> b;
if(a > b) swap(a, b);
if(a == 1 && b == 1) cout << -1 << " " << -1 << endl;
else if(b - a == 1) cout << -1 << " " << -1 << endl;
else if(a == b) cout << 2 << " " << a << endl;
else
{
ll c = b - a;
for(int i = 2; i * i <= b - a; ++i)
if(b % i == a % i){
c = i; break;
}
cout << c << " " << b - a << endl;
}
}
int main()
{
int T;cin >> T;while(T--)
work();
return 0;
}
本文探讨了模运算中a和b对m同余的性质,即(a-b)%m==0时a和b的关系,并通过具体例子进行了说明。此外,还提供了一段C++代码实现,用于找出两个数之间的最小公倍数,进而判断它们是否模m同余。
655

被折叠的 条评论
为什么被折叠?



