#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{
ll out=0,fh=1;
char jp=getchar();
while ((jp>'9'||jp<'0')&&jp!='-')
jp=getchar();
if (jp=='-')
fh=-1,jp=getchar();
while (jp>='0'&&jp<='9')
out=out*10+jp-'0',jp=getchar();
return out*fh;
}
ll n,k,a,b;
ll gcd(ll A,ll B)
{
return B?gcd(B,A%B):A;
}
ll p[4];
int main()
{
n=read(),k=read(),a=read(),b=read();
p[0]=(k+a+b)%k;
p[1]=(k+a-b)%k;
p[2]=(k-a-b)%k;
p[3]=(k-a+b)%k;
ll maxans=0,minans=1e18;
for(int i=0; i<4; ++i)
{
for(ll q=0; q<=n-1; ++q)
{
ll ans=n*k/gcd(p[i]+q*k,n*k);
maxans=max(maxans,ans);
minans=min(minans,ans);
}
}
cout<<minans<<' '<<maxans<<endl;
return 0;
}
原文:https://www.cnblogs.com/jklover/p/10659933.html